遍历数组的12种方法

  • 第一种:普通for循环
for(var i = 0; i < arr.length;i++  ){
        //代码
    }
  • 第二种:forEach循环
    arr.forEach((item,index,arr)=>{
        //代码
    })
    forEach接收一个回调函数作为参数,而这个回调函数有接受三个参数,作为参数。item是每个元素,index元素在数组中的下标,arr数组本身。
    没有返回值!
  • 第三种:map循环
   var brr= arr.map((item,index,arr)=>{
        //代码
        return item * 2;
    })
    map的用法和forEach差不多。但是map是有返回值的。他的返回值是一个新数组
    arr---->[1,2,3]
    brr---->[2,4,6]

  • 第四种:for–of
    只有是现实iterator 接口的才能用for---of.对象不能
    for(var item of arr){
        //代码
    }
 
  • 第五种:filter
    var arr = [
        {name:'张三',age:'20'},
        {name:'李四',age:"50"}
    ]
    arr.filter(item=>{
        return item.name;
        //返回值是 arr本身,所以元素的name都为true
    })
    arr.filter(item=>{
        return item.age>30;
        //[{name:"李四",age:"50"}]
    })
    //接受一个回调函数作为参数,返回值是一个新数组
  • 第六种:every遍历
    every()是对数组中的每一项运行给定函数,如果该函数对每一项返回true,则返回true。(全部符合条件)
    var arr=[50,6,70,80];
    arr.every((item,index,arr)=>{
        return item > 50; //每一项数据都要大于50
    })
    //false    
  • 第七种:some遍历
    some()是对数组中每一项运行指定函数,如果该函数对任一项返回true,则返回true。(只要有一个符合)
    var arr=[50,6,70,80];
    arr.some((item,index,arr)=>{
        return item > 50; //只要有一项数据都要大于50
    })
    //true
  • 第八种:reduce
    reduce()方法接收一个函数作为累加器,数组中每个值(从左往右)开始缩减,最重为一个值
    [1,2,3].reduce((a,b) => {
        return a + b;//6   
    })
    [1,2,3].reduce((previousValue,currentValue,index,arr)=>{
        return previousValue + currentValue;
    })

    reduce还有第二个参数,我们可以把这个参数作为第一次调用callback时的第一个参数,上面这个例子因为没有第二个参数,所以直接从数组的第二项开始,如果我们给了第二个参数为5
     [1,2,3].reduce((previousValue,currentValue,index,arr)=>{
        return previousValue + currentValue;
    },5)

    // 6, 8 ,11
    第一次调用的previousValue的值就用传入的第二个参数代替,
  • 第九种:reduceRight
    reduceRight()方法的功能和reduce()功能是一样的,不同的是reduceRight()从数组的末尾向前将数组中的数组项做累加。
    reduceRight()首次调用回调函数callbackfn时,prevValue 和 curValue 可以是两个值之一。如果调用 reduceRight() 时提供了 initialValue 参数,则 prevValue 等于 initialValue,curValue 等于数组中的最后一个值。如果没有提供 initialValue 参数,则 prevValue 等于数组最后一个值, curValue 等于数组中倒数第二个值。
    var arr = [0,1,2,3,4];
 
    arr.reduceRight(function (preValue,curValue,index,array) {
        return preValue + curValue;
    }); // 10
    7 = 4 + 3   第一次
    9 = 2 + 7   第二次
   10 = 9 + 1   第三次
   10 = 10 + 0  第四次
  • 第十种:find
    find()方法返回数组中符合测试函数条件的第一个元素。否则返回undefined 
    var stu = [
    {
        name: '张三',
        gender: '男',
        age: 20
    },
    {
        name: '王小毛',
        gender: '男',
        age: 20
    },
    {
        name: '李四',
        gender: '男',
        age: 20
    }
]
    function getStu(element){
    return element.name == '李四'
    }
    
    stu.find(getStu)
    //返回结果为
    //{name: "李四", gender: "男", age: 20}
  • 第十一种:findIndex
    对于数组中的每个元素,findIndex 方法都会调用一次回调函数(采用升序索引顺序),直到有元素返回 true。只要有一个元素返回 true,findIndex 立即返回该返回 true 的元素的索引值。如果数组中没有任何元素返回 true,则 findIndex 返回 -1。
    findIndex 不会改变数组对象!!!!!
    [1,2,3].findIndex(function(x) { x == 2; });
    //1
    [1,2,3].findIndex(x => x == 4);
    //-1
  • 第十二种:keys,values,entries
 ES6 提供三个新的方法 —— entries(),keys()和values() —— 用于遍历数组。它们都返回一个遍历器对象,可以用for...of循环进行遍历,唯一的区别是keys()是对键名的遍历、values()是对键值的遍历,entries()是对键值对的遍历

for (let index of ['a', 'b'].keys()) {
console.log(index);
}
// 0
// 1
for (let elem of ['a', 'b'].values()) {
console.log(elem);
}
// 'a'
// 'b'
for (let [index, elem] of ['a', 'b'].entries()) {
console.log(index, elem);
}
// 0 "a"
// 1 "b"
  • 13
    点赞
  • 109
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
JavaScript中遍历数组有多方法。其中常用的方法包括forEach、map、for循环、for of、for in、filter和find。 1. 使用forEach方法进行遍历。forEach方法接受一个回调函数作为参数,该函数在遍历数组的每个元素时被调用。可以使用item参数来访问当前遍历到的元素,使用index参数来访问元素的索引,使用self参数来访问数组本身。例如: arr.forEach(function(item, index, self) { console.log(item); }); 这段代码会打印出数组arr中的每个元素。 2. 使用map方法进行遍历和映射。map方法也接受一个回调函数作为参数,该函数在遍历数组的每个元素时被调用,并返回一个新的数组。可以使用item参数来访问当前遍历到的元素。例如: let newArr = arr.map(item => { return item * 2; }); 这段代码会将数组arr中每个元素都乘以2,并将结果保存在新数组newArr中。 3. 使用for循环进行遍历。可以使用临时变量将数组的长度缓存起来,以避免重复获取数组长度。例如: for (var i = 0; i < arr.length; i++) { console.log(arr[i]); } 这段代码会按顺序遍历数组arr中的每个元素,并打印出来。 4. 使用for of循环进行遍历。for of循环可以直接遍历数组中的每个元素。例如: for (var item of arr) { console.log(item); } 这段代码会按顺序遍历数组arr中的每个元素,并打印出来。 5. 使用for in循环进行遍历。for in循环遍历的是数组的索引,而不是数组的值。例如: for (var index in arr) { console.log(arr[index]); } 这段代码会按顺序遍历数组arr中的每个元素,并打印出来。 6. 使用filter方法进行遍历和筛选。filter方法也接受一个回调函数作为参数,该函数在遍历数组的每个元素时被调用,并返回一个满足某个条件的新数组。例如: let newArr = arr.filter(item => { return item < 3; }); 这段代码会返回一个新数组newArr,其中包含数组arr中小于3的元素。 7. 使用find方法进行遍历。find方法也接受一个回调函数作为参数,该函数在遍历数组的每个元素时被调用,直到找到满足某个条件的元素为止。例如: let result = arr.find(item => { return item === 3; }); 这段代码会返回数组arr中第一个等于3的元素。 以上是JavaScript中常用的几遍历数组方法。根据实际需求选择合适的方法来进行遍历。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [JS遍历数组的十五方法](https://blog.csdn.net/weixin_39987434/article/details/130869691)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值