当前位置:网站首页 > R语言数据分析 > 正文

数组方法find(数组方法filters)



javascript有很多遍历的方法,for、for in、for of(ES6)、forEach、map、filter、every、some、Jquery的each等等。接下来通过一些例子来对比一下这些方法。

示例均使用如下测试数据:var arr = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',

'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'];

1、for 循环

for循环语句,最基础的遍历,以数组的下标为索引,对数组元素进行遍历。

结果:abcdefghijklmnopqrstuvwxyz

array for 总耗时:1.00905

2、for in

for in循环不仅可以遍历数组,还可以遍历对象,但for in存在一些陷阱,比如它会在遍历完元素之后,还会对数组或对象的prototype中的属性进行遍历,所以,for in 更像是为对象遍历而设计的。

示例:

结果:abcdefghijklmnopqrstuvwxyz

array for in 总耗时:1.06003

3、for of (ES6)

ES6中引入了 for ... of 循环,以替代 for...in 和 forEach() ,允许对 Array(数组)、String(字符串)、Maps(映射)、Sets(集合)等可迭代的数据结构进行遍历。

注意:for(var k of arr) 中的 k ,就是数组 arr 中的元素,而不是数组的下标。

IE 不支持,Edge支持。

结果:abcdefghijklmnopqrstuvwxyz

array for of 总耗时:2.85613

4、forEach

forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。

结果:abcdefghijklmnopqrstuvwxyz

array forEach 总耗时:1.80063

注意:forEach() 对于空数组是不会执行回调函数的。

回调函数 function (v, k) 中的 k 是数组的下标,v 是数组元素值。

IE9以下的版本不支持。

5、map

map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。

结果:abcdefghijklmnopqrstuvwxyz

array map 总耗时:1.06003

6、filter

filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。

结果:abcdefghijklmnopqrstuvwxyz

array filter 总耗时:1.82612

7、every

every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供),返回 boolen。

结果:false

array every 总耗时:1.8516如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。

如果所有元素都满足条件,则返回 true。

every() 不会对空数组进行检测。

every() 不会改变原始数组。

8、some

some() 方法用于检测数组中的元素是否满足指定条件(函数提供)。只要有一个元素满足则返回true,并不再继续往下判断。

结果:false

array some 总耗时:1.03454如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。

如果没有满足条件的元素,则返回false。

some() 不会对空数组进行检测。

some() 不会改变原始数组。

9、JQuery的$.each方法

each() 方法为每个匹配元素规定要运行的函数。JQuery的each方法既可以遍历数组,也可以遍历对象。在遍历对象时可以很容易获取对象属性名。

结果:abcdefghijklmnopqrstuvwxyz

jquery each 总耗时:2.34565一般用法为:$(selector).each(function(index,element)) 或者 $.each(obj,function(index,element)) ;回调函数中 index 参数是 对象obj的属性名(或者 数组obj 的索引),element 参数是 具体的值。

执行 return true 相当于 continue;

执行 return false 相当于 break;

10、Object.keys.forEach

Object.keys.forEach() 主要是用于遍历对象,获取对象的属性名,对于遍历数组意义不大。

结果:abcdefghijklmnopqrstuvwxyz

object key 总耗时:1.3921

Object.keys.forEach 在遍历时,回调函数的参数 key是属性名(对于数组,属性名和索引一一对应),index 是keys数组的索引,arr是keys数组;所以在取值的时候还是用 obj[key]

到此这篇数组方法find(数组方法filters)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • intent filter verification停用(agent for easyconnect已停止工作)2025-07-17 18:00:08
  • resnet网络(resnet网络解决了什么问题)2025-07-17 18:00:08
  • 连接redis的命令(如何连接redis)2025-07-17 18:00:08
  • tree size 安卓(treesizefree 安卓)2025-07-17 18:00:08
  • fairseq教程(fair sink)2025-07-17 18:00:08
  • uchar code dsy_code(uchar code DSY_CODE为什么报错)2025-07-17 18:00:08
  • arrport怎么读(atrport怎么读)2025-07-17 18:00:08
  • torna a surriento正谱(a un dottor della mia sorte正谱)2025-07-17 18:00:08
  • stores怎么读(stores怎么读音发音)2025-07-17 18:00:08
  • hrnetone属于什么档次(hr品牌属于什么档次)2025-07-17 18:00:08
  • 全屏图片