js中数组的迭代方法

迭代方法

每个方法都接受两个参数:要在每一项上运行的函数(可选的)和运行该函数的作用域对象——影响this的值。
传入的函数会接受三个参数:数组项的值、该项在数组中的位置和数字对象本身。

every

如果该函数对每一项都返回true,则返回true。

<script>
        var index = [2, 3, 5, 10, 15];
        var boolean = index.every(function(item, index, array) {
            return item > 2
        })
        var boolean1 = index.every(function(item, index, array) {
            return item > 1
        })
        alert(boolean) //false
        alert(boolean1) //true
    </script>

some

该函数对任一项返回true,则返回true

<script>
        var index = [2, 3, 5, 10, 15];
        var boolean = index.some(function(item, index, array) {
            return item > 2
        })
        var boolean1 = index.some(function(item, index, array) {
            return item > 20
        })
        alert(boolean) //true
        alert(boolean1) //false
    </script>

filter

该函数会返回true的项组成的数组。

 <script>
        var index = [2, 3, 5, 10, 15];
        var boolean = index.filter(function(item, index, array) {
            return item > 2
        })
        var boolean1 = index.filter(function(item, index, array) {
            return item > 10
        })
        alert(boolean) //3,5,10,15
        alert(boolean1) //15
        </script>

map

返回每次函数调用的结果组成的数组。

 <script>
        var index = [2, 3, 5, 10, 15];
        var boolean = index.map(function(item, index, array) {
            return item * 2
        })
        var boolean1 = index.map(function(item, index, array) {
            return item * 3
        })
        alert(boolean) //4,6,10,20,30
        alert(boolean1) //6,9,15,30,45
    </script>

forEach

这个方法没有返回值

<script>
        var index = [2, 3, 5, 10, 15];
        index.forEach(function(item, index, array) {

            alert(index + ":" + item) //0:2 1:3 2:5 3:10 4:15
        })
    </script>

归并方法

reduce和reduceRight

reduce方法从数组的第一项开始,逐个遍历到最后,reduceRight则从数组的最后一项开始,向前遍历到第一项。
这两个方法都接收两个参数:一个在每一项上调用的函数和(可选的)作为归并基础的初始值。
传入的函数接收四个参数:前一个值,当前值,项的索引和数组对象。这个函数返回的任何值都会作为第一个参数自动传给下一项。
下面让我们看个例子来理解一下。

<script>
        var index = [2, 3, 5, 10, 15];
        var sum = index.reduce(function(pre, cur, index, array) {
            return pre + cur;
        })
        alert(sum); //35
        // 第一次遍历  pre=2 cur =3
        // 第二次遍历  pre等于上一次的返回值也就是 5 ,cur=5;
        // 第三次遍历  pre等于上一次的返回值10,cur=10,
        // 第四次遍历  pre等于上一次的返回值20,cur=15;
        // 第五次遍历  返回35
    </script>

reduceRight()除了遍历方向跟reduce()不一样,其它都是相同的,这里就不再演示了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值