如何在循环中获取数组元素的索引?

Pop*_*iev 15 angularjs

我有一个循环Angular JS:

angular.forEach($scope.message, function (item) {
      return (item.id_user == input.id_user) ? true : false;
}); 
Run Code Online (Sandbox Code Playgroud)

如何在每个循环中获取数组元素的索引item?我试过了:

angular.forEach($scope.message, function (item, $index) {});
Run Code Online (Sandbox Code Playgroud)

Pat*_*ard 49

对不起社区的所有讽刺.你非常接近你的解决方案,但有点困惑的文档.没关系,让我帮忙澄清一下!

angular.forEach的文档中,您将看到以下语句:

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

然后是以下示例:

var values = {name: 'misko', gender: 'male'};
var log = [];
angular.forEach(values, function(value, key) {
  this.push(key + ': ' + value);
}, log);
expect(log).toEqual(['name: misko', 'gender: male']);
Run Code Online (Sandbox Code Playgroud)

本质上,代码是这样的:

angular.forEach('要循环的列表/数组的名称','要为列表的每个元素调用的回调函数')

你缺少的重要部分 是上面提到的'回调......'可以传递3个变量,然后你可以在你的回调中使用它们.将为列表中的每个元素调用您的回调.以下是对这3个变量的一些解释:

值:列表/数组/对象中第i个元素/属性的值

键: i - 属于数组中当前项的索引

对象:对象本身(或数组/列表本身)

下面是我为您准备的示例,其中我使用Key创建一个新字符串,显示$ scope.message中每个字母的索引.希望这有帮助!


s.c*_*sha 11

angular.forEach($scope.arrayname,function(item,index){
  console.log(item,index)
})
Run Code Online (Sandbox Code Playgroud)

  • 您好,欢迎来到StackOverflow.请为您的答案提供解释,以便为其他用户提供更多服务.请参阅http://stackoverflow.com/help/how-to-answer (4认同)