JavaScript数组迭代方法以及原生js

/map方法
function myMap(arr,callback){
if(!arr.length || !Array.isArray(arr) ||typeof callback !“function”){
return []
}else{
const result =[]
for(let i=0;i<arr.length;i++){
const item = arr[i]
result.push(callback(item))
}
return result;
}
}
let arr = [1,2,3,4,5]
const res = myMap(arr,(item)=>{
return item+“cccc”
})
console.log(res);
let arr = [1, 2, 3, 4, 5]
let result=arr.map( (item, index, arr) => {
console.log(item, index, arr);
return item+“cccc”})
console.log(result);
///filter方法//
function myFilter(arr, callback) {
if (!arr.length || !Array.isArray(arr) || typeof callback !
‘function’) {
return []
} else {
const result = []
var xixi;
for (let i = 0; i < arr.length; i++) {
const item = arr[i]
xixi = callback(item, i, arr)
if (xixi) {
result.push(item)
}
}
return result
}
}
let arr = [1, 2, 3, 4, 5]
const res = myFilter(arr, (item, index, arr) => {
// console.log(item, index, arr)
return item % 2 !== 0
})
console.log(res) // [1, 3, 5]
let arr = [1, 2, 3, 4, 5]
let result=arr.filter( (item, index, arr) => {
console.log(item, index, arr);
return item % 2 !== 0})
console.log(result);
/reduce方法//
function myReduce(arr, callback) {
if (!Array.isArray(arr) || !arr.length || typeof callback !== ‘function’) {
return []
} else {
let value = arr[0]
for (let i = 1; i < arr.length; i++) {

  value = callback(value, arr[i], i, arr)
}
return value

}
}
let arr = [1, 2, 3, 4, 5]
const resMult = myReduce(arr, (value, item, i, arr) => {
// console.log(value, item, i, arr)
return value * item
})
const resAdd = myReduce(arr, (value, item, i, arr) => {
// console.log(value, item, i, arr)
return value + item
})

console.log(resMult, resAdd) // 120 15

let arr = [1, 2, 3, 4, 5]
const result = arr.reduce(function myReduce(total,item){
return total+item
})
console.log(result);
/forEach方法//
let arr =[1,2,3,4,5]
arr.forEach(function myForeach(value,index ){
console.log(value,index);
})
function myForeach(arr,fn){
let result =[]
for(var i=0;i<arr.length;i++){
result.push(arr[i])
}
return result

}
var arr = [1,2,3,4,5,6,7]
const result = myForeach(arr,(value,index)=>{
})
console.log(result);
/every方法//
var numbers = [45, 4, 9, 16, 25];
var allOver18 = numbers.every(myFunction);

function myFunction(value, index, array) {
return value > 18;
}
var arr = [1, 2, 3, 4, 6, 7, 8, 4];
function myEvery(arr, callback) {
var result=0;
var flag = true;
for (var i = 0; i < arr.length; i++) {
var result=callback(arr[i])
if (!result) {
flag=false;
return flag
}
}
return true
}
var result = myEvery(arr, (value) => {
return value > 0;
});
console.log(result);

/some方法//

var arr = [1,2,3,4,5,6,7,8,9]
function mySome(arr,callback){
var result;
for(var i=0;i<arr.length;i++){
result = callback(arr[i]);
if(result){
return true
}
}
return false

}
console.log(mySome(arr,(value)=>{
return value>200
})
);

var numbers = [45, 4, 9, 16, 25];
var someOver18 = numbers.some(myFunction);
function myFunction(value, index, array) {
return value > 18;
}

console.log(someOver18);

//indexOf方法//

var fruits = [“Apple”, “Orange”, “Apple”, “Mango”];
console.log(fruits.indexOf(“Apple”));

var fruits = [“Apple”, “Orange”, “Apple”, “Mango”, “Mango”, “Mango”, “Apple”];
function myIndexOf(arr,fn){
for(let i=0;i<arr.length;i++){
if(fn(arr[i],i)){
return i;
}
}
return -1

}

console.log(myIndexOf(fruits,(value,index)=>{
return value==“Apple”&&index>=5;
}));
find方法/
var numbers = [4, 9, 16, 25, 29];
console.log(numbers.find(myFunction));;

function myFunction(value, index, array) {
return value > 18;
}
var arr = [299,43214,4325,23,1];
function myFind(arr,fn){
for(var i=0;i<arr.length;i++){
if(fn(arr[i])){
return arr[i]
}
}
}
console.log(myFind(arr,(value)=>{
return value<20
}));

lastIndexOf方法///
var fruits = [“Apple”, “Orange”, “Apple”, “Mango”];
console.log(fruits.lastIndexOf(“Apple”));;
var arr = [“Apple”, “Orange”, “Apple”, “Mango”];
function myLastIndexOF(arr,fn){
for(var i=arr.length;i>0;i–){
if(fn(arr[i],i)){
return i
}

}
return -1

}
console.log(myLastIndexOF(arr,(value,index)=>{
return value==“Apple”&&index<=2

}));
///findIndex方法/
var numbers = [4, 9, 16, 25, 29];
var first = numbers.findIndex(myFunction);

function myFunction(value, index, array) {
return value > 18;
}
function myFunction(value, index, array) {
return value > 18;
}
var arr = [299,43214,4325,23,1];
function myFind(arr,fn){
for(var i=0;i<arr.length;i++){
if(fn(arr[i])){
return i
}
}
}
console.log(myFind(arr,(value)=>{
return value<20
}));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值