Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.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 foreach循环(例如..in)和角度foreach循环之间的差异。?_Javascript_Angularjs_Loops_Foreach - Fatal编程技术网

javascript foreach循环(例如..in)和角度foreach循环之间的差异。?

javascript foreach循环(例如..in)和角度foreach循环之间的差异。?,javascript,angularjs,loops,foreach,Javascript,Angularjs,Loops,Foreach,我不熟悉棱角结构。当我想在angular中迭代json对象时,我在循环中使用javascriptforeach和for 后来我知道angular本身有一个angular.forEach循环来迭代对象 如何比较angular.forEach与javascriptfor..in和forEach循环中的性能 为什么我们应该使用angular.forEach而不是javascriptforEach和for..in 请给我一些例子和理由来使用它,这表明性能 谢谢:)基本上是一种多填料 因此,如果您使用的是

我不熟悉棱角结构。当我想在angular中迭代json对象时,我在循环中使用javascript
foreach
for

后来我知道angular本身有一个
angular.forEach
循环来迭代对象

如何比较
angular.forEach
与javascript
for..in
forEach
循环中的性能

为什么我们应该使用
angular.forEach
而不是javascript
forEach
for..in

请给我一些例子和理由来使用它,这表明性能

谢谢:)

基本上是一种多填料

因此,如果您使用的是angular,那么浏览器是否旧并不重要,因为angular将在需要时提供替换

在代码中,它将如下所示:

if (!Array.prototype.forEach) {
    Array.prototype.forEach = function(...) {
        // angulars own implementation
    }
}
还有一些其他的区别,例如

  • angular.forEach支持对象上的迭代
  • angular.forEach将对象/数组作为其第一个参数

Angular forEach为obj集合中的每个项调用一次迭代器函数,该项可以是对象或数组

var values = {name: 'misko', gender: 'male'};
angular.forEach(values, function(value, key) {
  console.log(key + ': ' + value);
});

// Output:
// "name: misko"
// "gender: male"
for..in-以任意顺序迭代对象的
可枚举属性。对于每个不同的属性,都可以执行语句

var obj = {a:1, b:2, c:3};

for (var prop in obj) {
  console.log("obj." + prop + " = " + obj[prop]);
}

// Output:
// "obj.a = 1"
// "obj.b = 2"
// "obj.c = 3"
forEach-方法对每个数组元素执行一次提供的函数

// Notice that index 2 is skipped since there is no item at
// that position in the array.
[2, 5, , 9].forEach(function (element, index, array) {
  console.log('a[' + index + '] = ' + element);
});
// logs:
// a[0] = 2
// a[1] = 5
// a[3] = 9

就性能而言,它取决于您正在使用的数据结构,如果它是
数组,我建议使用
Angular.forEach或native forEach
,如果它是
对象,那么..In
将是最好的,但是它似乎
Angular.forEach
处理对象也很好。取决于您处理的数据量。如果是巨大的,我建议您使用像
Lodash或下划线这样的库,它们可以很好地处理数据操作。

True,数据结构的类型也有问题,
If(!Array.forEach){
If(!Array.prototype.forEach){
!Array.forEach
在这种情况下将始终为
true
forEach
prototype
属性中提供。
angular.forEach
性能优于常规的
for/forEach