javascript --数组forEach()、forIn()、forOf()、filter()、map()、include()、find()、some()、every()、reduce()

forEach():不支持return,声明式(不关心如何实现)

let arr = [1,2,3,4,5];
arr.forEach(function (item) {
   console.log(item); 
})

forIn():key 会变成字符串类型,包括数组的私有属性

let arr = [1,2,3,4,5];
for(let key in arr) {
            console.log(key);
        }

forOf():支持return,break,continue,并且是值 of 数组(不能遍历对象)

let arr = [1,2,3,4,5];
for(let val of arr) {
            console.log(val);
        }

filter():过滤   不操作元数组    返回结果:返回过滤后的新数组     回调函数的返回结果:true 放到新数组 否则不返回结果

let newAry = [1,2,3,4,5,6,7].filter(function(item){
            return item > 4;
        })
        console.log(newAry);

map():映射  不操作原数组 返回心得数组  回调函数:返回什么就是什么

let arr1 = [1,2,3].map(function(item){
            // return item * 2;
            return `<i>${item}</i>`;//   `` 是es6中的模版字符串 遇到变量用 ${} 取值
        });
        console.log(arr1.join(","));

include(): 返回的是布尔类型

let arr2 =[1,2,3,4,55,555];
    console.log(arr2.includes(5));

find(): 返回找到的那一项 不会改变原数组 回调函数返回true表示找到了 便停止循环 找不到返回 undefined

let arr3 = [1,2,3,4,5];
let result = arr3.find(function(item,index){ return item.toString().indexOf(5)>-1; }) console.log(result);
some(): 找true 找到true后停止 返回true 找不到返回false
let arr3 = [1,2,3,4,5];
let result1 = arr3.some(function (item,index) {
            return item.toString().indexOf(5)>-1;
        });
        console.log(result1);
every(): 找false 找到false后停止 返回false
let arr3 = [1,2,3,4,5];
        let result2 = arr3.every(function (item,index) {
            return item.toString().indexOf(5)>-1;
        });
        console.log(result2);
reduce(): 收敛函数 有4个参数 返回的是叠加后的结果 原数组不发生变化 回调函数返回的结果
prev,代表是数组的第一项,next,代表是数组的第二项
第二次 prev代表是undefined,next,代表是数组的第三项
[1,2,3,4,5].reduce(function(prev,next,index,item){
        // console.log(arguments);
        console.log(prev,next);
        return 100; // 本次的返回值 会作为下一次的上一个 
        
    })

猜你喜欢

转载自www.cnblogs.com/010101-/p/9843772.html