• 第一种:普通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;}); // 107 = 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"

遍历数组的12种方法相关推荐

  1. JS遍历数组的12种方法

    一. for 普通版 for (let i = 0; i < arr.lengthl; i++) {// ... } 优化版 // 使用临时变量,将长度缓存起来,避免重复获取数组长度,当数组较大 ...

  2. php遍历数组哪个效率高,PHP遍历数组的三种方法及效率对比分析

    PHP遍历数组的三种方法及效率对比分析 发布于 2015-03-04 21:55:27 | 129 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext ...

  3. python遍历数组的两种方法及将print的内容写入文件中

    python遍历数组的两种方法 第一种,最常用的,通过for in遍历数组 colours = ["red","green","blue"] ...

  4. php遍历数组哪个效率高,PHP遍历数组的三种方法及效率对比分析_php技巧

    本文实例分析了PHP遍历数组的三种方法及效率对比.分享给大家供大家参考.具体分析如下: 今天有个朋友问我一个问题php遍历数组的方法,告诉她了几个.顺便写个文章总结下,如果总结不全还请朋友们指出 第一 ...

  5. php 遍历 效率高,PHP遍历数组的三种方法及效率对比分析

    这篇文章主要介绍了PHP遍历数组的三种方法及效率对比,实例分析了foreach.while与for三种遍历数组的方法与相关的效率比对,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例分析了PHP遍 ...

  6. php高效遍历,PHP 遍历数组的三种方法及效率对比分析

    PHP 遍历数组的三种方法及效率对比分析 本文实例分析了 PHP 遍历数组的三种方法及效率对比分享给大家供大家参考具体分析如下: 今天有个朋友问我一个问题 php 遍历数组的方法, 告诉她了几个顺便写 ...

  7. python3(4)--- python遍历数组的两种方法

    python遍历数组的两种方法 第一种,最常用的,通过for in遍历数组.其实本质就是取出来的是这个数组或者列表中的元素,和角标无关. colours = ["red",&quo ...

  8. python遍历数组的两种方法的代码

    工作过程中,把开发过程中较好的一些内容段备份一下,下面内容是关于python遍历数组的两种方法的内容,希望对小伙伴有用途. colours = ["red","green ...

  9. linux脚本遍历数组,浅谈shell 遍历数组的几种方法

    背景 某天遇到一个问题,现象如下:第一种遍历正常打印元素,然而第二种遍历只会打印一个元素! #!/bin/bash # $1 代表文件目录 # 执行 eg: # sh your_shell.sh /u ...

最新文章

  1. W1000变频器如何设定频率_变频器参数如何设定,参数故障处理办法
  2. Redis第四集:redis的基本知识说明
  3. 《Performance Overhead of Atomic Crosschain Transactions》
  4. C++基础 (1) 常见的易错问题
  5. 高频面试题1:自增边量
  6. POJ 3627 Bookshelf 贪心 水~
  7. ndk c调用java_使用NDK将Android转换为C,然后在C中调用Java函数
  8. 【论文复现】Character-level Convolutional Networks for Text Classification
  9. 从Java到JVM到OS线程睡眠
  10. Windows10下解压版mysql-8.0.11安装教程
  11. Gambit建模中split的用法
  12. 阮一峰ES6入门读书笔记(九):Set 和 Map
  13. Redis_常用数据类型及实践案例
  14. echarts 时间轴处理_echarts 带时间轴可缩放的折线图
  15. 论文笔记 ACL 2021|Capturing Event Argument Interaction via A Bi-Directional Entity-Level Recurrent Decod
  16. 【算法16】递归算法的时间复杂度终结篇
  17. Firebase使用总结(早期)
  18. 硬件安全技术——概述3
  19. ffmpeg截取视频片段
  20. 布林通道参数用20还是26_布林通道最佳参数

热门文章

  1. IOS音视频(三)AVFoundation 播放和录音
  2. mmseg中的评价指标
  3. 线程池实现简单的TCP通信
  4. 在逆境中成长,人生的财富
  5. Unity 遍历子物体与孙物体
  6. 一些高大上的日志系统收集
  7. C语言学习记录——삼 初识C语言(3)
  8. Go语言GOPATH是什么
  9. 图形学笔记(四)变换——三维变换(三维旋转与欧拉角)、MVP变换、视图变换、投影变换(正交投影与透视投影)
  10. 怎么查银行卡里的余额