js循环,前端常用的八种循环,你用过几种呢?

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{// 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)

ps:怎么样是不是又涨知识了,大家不要学我let声名这么多次newarr,我是注释这写的,大家要用的话直接,用哪个拿那个就OK。
这里给大家留一个坑,接下来给大家分享es6,的循环。

你可能感兴趣的:(JavaScript)