js数组迭代方法总结

数组迭代,数组有很多的迭代方法,在这边做个总结。

迭代:就是对数组中的每一项都进行相应的操作
这些迭代方法都有一个回调函数:有三个参数:数组中的每个元素,元素的索引,原数组

1、forEach(回调函数)
forEach方法没有返回值,修改原数组。

var nums = [1,3,5,6,8];
nums.forEach(function(item,index,oldArr) {
            console.log("第"+index+"个元素乘2后是:"+item*2);
            console.log(oldArr);
        });
console.log(nums);

2、map(回调函数)
通过指定函数处理数组的每个元素,并返回处理后的结果的数组。

var nums = [1,3,5,6,8];
var result = nums.map(function(item,index) {
            return item<4;
        });
console.log(result);//[true, true, false, false, false]

3、filter(回调函数)
filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
注: filter() 不会对空数组进行检测, 不会改变原始数组。

        var nums = [1,3,5,6,8];
        var result = nums.filter(function(item,index) {
            return item<4;
        });
        console.log(result);//[1, 3]

4、every(回调函数)
检测数值元素的每个元素是否都符合条件,有一个元素让条件为false,则返回false, 且剩余元素不会再进行检测。

        var nums = [1,3,5,6,8];
        var result = nums.every(function(item,index) {
            return item<4;
        });
        console.log(result);//false

5、some(回调函数)
检测数组元素中是否有元素符合指定条件。有一个元素让条件为true,则返回true, 且剩余元素不会再进行检测。

        var nums = [1,3,5,6,8];
        var result = nums.some(function(item,index) {
            return item<4;
        });
        console.log(result);//true

6、find(回调函数)
返回符合条件的第一个元素

        var nums = [1,3,5,6,8];
        var result = nums.find(function(item,index) {
            return item<4;
        });
        console.log(result);//1

7、findIndex(回调函数)
返回符合条件的第一个元素的索引值

        var nums = [1,3,5,6,8];
        var result = nums.findIndex(function(item,index) {
            return item<4;
        });
        console.log(result);//0

8、reduce(回调函数)
array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
total 必需。初始值, 或者计算结束后的返回值。
currentValue 必需。当前元素
currentIndex 可选。当前元素的索引
arr 可选。当前元素所属的数组对象。
initialValue 可选。传递给函数的初始值

可用来进行计算操作如求和等

var nums = [1, 2, 3, 4, 5];
        let res = nums.reduce((prev, cur, curIndex, arr) => {
            return prev + cur
        }, 0)
        console.log(res);
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页