常用循环

let arr = [{title:‘aaaa’,read:1000,hot:true},
{title:‘bbbb’,read:300,hot:false},
{title:‘cccc’,read:2000,hot:true},
{title:‘dddd’,read:1900,hot:false}
];

// 第一种for
for(let i=0; i<arr.length;i++){
console.log(arr[i]);
}

// 第二种forEach
// forEach就是代替普通的for
arr.forEach(function(item,index,arr){// item:循环结果 index:下标 arr:原数组
console.log(item);
},‘this指向,如果使用的是箭头函数无法改变this指向’);

// 第三种map
// 它可以重新整理数据结构,可以返回一个新的数组
let newarr = arr.map((item,index,arr)=>{// item:循环结果 index:下标 arr:原数组
// console.log(item,index,arr);
let json = {};
json.t = 随便加点${item.title}----;
json.r = 随便加点${item.read}----;
json.h = 随便加点${item.hot}----;
return json;
})
console.log(newarr)

// 第四种filter
// 过滤,过滤一些不合格或者不想要的元素,如果返回结果为true,就留下来
let newarr = arr.filter((item,index,arr)=>{// item:循环结果 index:下标 arr:原数组
return item.hot == true;//判断即可
})
console.log(newarr)

// 第五种some
// 类似查找,数组里面某一个元素符合条件,返回true
let newarr = arr.some((item,index,arr)=>{
return item.title == ‘dddd’;
})
console.log(newarr)

// 第六种every
// 类似查找,数组里面所有的元素都要符合条件,才返回true
arr2 = [1,3,5,7,9]
let newarr = arr2.every((item,index,arr)=>{
return item%2 == 1;//判断我的数组里面是否有偶数
})
console.log(newarr)

// 第七种reduce
// 求数组的和、阶乘,从左往右计算
arr3 = [1,2,3,4,5,6,7,8,9,10];
arr4 = [2,2,3];
let newarr = arr3.reduce((prev,cur,index,arr)=>{//prev:前一个 cur:当前 index:下标 arr:原数组
return prev+cur;
return Math.pow(prev,cur);//调用arr4的数组
return prev**cur;//或者使用幕运算符
})
console.log(newarr)

// 第八种reduceRight
// 求数组的和、阶乘,跟reduce正好相反,从右往左计算
arr3 = [2,2,3];
let newarr = arr3.reduceRight((prev,cur,index,arr)=>{//prev:前一个 cur:当前 index:下标 arr:原数组
// return prev+cur;
return Math.pow(prev,cur);
})
console.log(newarr)

猜你喜欢

转载自blog.csdn.net/qq_26642611/article/details/108733498
今日推荐