Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 哪一个更有效?array.forEach还是angular.forEach? array.prototype.forEach_Javascript_Arrays_Angularjs - Fatal编程技术网

Javascript 哪一个更有效?array.forEach还是angular.forEach? array.prototype.forEach

Javascript 哪一个更有效?array.forEach还是angular.forEach? array.prototype.forEach,javascript,arrays,angularjs,Javascript,Arrays,Angularjs,forEach()按升序为数组中的每个元素执行一次提供的回调。对于已删除或未初始化的索引属性(即在稀疏数组上),不会调用它 资料来源: 角形前爪 对obj集合中的每个项(可以是对象或数组)调用一次迭代器函数。迭代器函数由迭代器(value,key,obj)调用,其中value是对象属性或数组元素的值,key是对象属性键或数组元素索引,obj是obj本身。为函数指定上下文是可选的 资料来源: 但我想知道哪一个更高效,性能如何。AngularJS forEach用于实现ES5 forEach(如果可

forEach()
按升序为数组中的每个元素执行一次提供的回调。对于已删除或未初始化的索引属性(即在稀疏数组上),不会调用它

资料来源:

角形前爪 对obj集合中的每个项(可以是对象或数组)调用一次迭代器函数。迭代器函数由迭代器(value,key,obj)调用,其中value是对象属性或数组元素的值,key是对象属性键或数组元素索引,obj是obj本身。为函数指定上下文是可选的

资料来源:


但我想知道哪一个更高效,性能如何。

AngularJS forEach用于实现ES5 forEach(如果可用),这不是最快的,但因为这是最快的for循环

如果您看到这一点,就会发现ES5foreach实现并不是最快的。本文档中的AngularJS版本 比较使用ES5foreach(如果可用)。这是由 这个现在它总是使用最快的for循环


Array#forEach没有库就可以工作。该站点正在维护中。您能给我任何其他链接吗。@bfmags,您确定它使用的是ES5 forEach吗?查看v1.5.7第248行的源代码特别有趣。如果对象是数组,则它不使用任何本机
forEach
函数。它使用了一个
for
循环。只有当对象不是数组(或类似数组)时,执行才会流到第255行,这将依赖于对象上的
forEach
函数。@Snixtor已更新!它过去使用ES5foreach(如果可用),但现在它总是使用最快的for循环。thnx@rittam社区(我和BFMAG)共同努力,为您的问题制定出高质量的答案。它被提升了几次,这意味着其他人认为这是一个有用的答案。你应该考虑把它标记为“答案”,或者澄清为什么你不认为它回答了你的问题。