有没有办法在对象上获得带有角度foreach的迭代次数

时间:2016-02-08 08:08:51

标签: javascript angularjs

有什么方法可以在角度foreach中获取迭代次数(当迭代像{'foo': 'blah', 'blah': 'foo'}这样的对象时? 因此,在这种情况下使用我的迭代器函数,值将是' blah'然后' foo'而关键将是' foo'然后' blah'

4 个答案:

答案 0 :(得分:0)

Angulars forEach在迭代对象时不会告诉您迭代对象键的次数。

当迭代一个数组时,它不会告诉你它运行了多少次但它在数组中的当前位置。这可能只是我迂腐,但存在差异。

但是,可以在对象键中提供其当前位置的替代方法是使用本机Object.keys()。它将返回一个对象键的数组,然后你可以像普通数组一样迭代它们,并获得你在该数组中的当前位置。

var obj = {'foo': 'blah', 'blah': 'foo'};

Object.keys(obj)
    .forEach(function (key, index) {
        console.log('Key', key, 'Value', obj[key]);
        console.log('Ive ran ', index);
    });

DOCS:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys

答案 1 :(得分:-1)

是的,就像这样:

angular.forEach(array, function (item, index) {
    //index
});

答案 2 :(得分:-2)

是的,它是直接从角度文档

传递给foreach函数调用的第二个参数

https://docs.angularjs.org/api/ng/function/angular.forEach

angular.forEach(obj, iterator, [context]);

答案 3 :(得分:-2)

angular.forEach(var,function(value,key){
  console.log(key);
})