2016-08-04 147 views
-1

我有一个对象数组。循环遍历对象数组中的项目

ABC.getAggregation("V")[0].getItems(); 

这产生的结果:

MY ARRAY OF OBJECTS

在控制台中我能得到的结果我被指定这样的项目的位置寻找:

ABC.getAggregation("V")[0].getItems()[0].getPosition() 
ABC.getAggregation("V")[0].getItems()[1].getPosition() 
ABC.getAggregation("V")[0].getItems()[2].getPosition() 

上述代码的结果产生字符串值,例如“3.4554,43,0”。

如何循环浏览每个项目并获取我的代码中的位置。就像我在控制台中输入的上面的代码一样。那里不会总是3个对象,这就是为什么我不能硬编码上述3行。

+2

99%的有[MCVE(** M ** inimal,** C ** omplete,** V ** erifiable ** E ** xample)](http://stackoverflow.com/help/mcve)。 请发布与您的问题相关的JavaScript/jQuery,CSS和HTML。使用任何或所有以下服务创建演示: [jsFiddle.net](https://jsfiddle.net/), [CodePen.io](https://codepen.io/), [Plunker。 (http://plnkr.co/), [JS Bin](https://jsbin.com/) 或片段(位于文本编辑器工具栏或CTRL + M上的第7个图标)。 – zer00ne

+0

http:// stackoverflow。com/questions/38778974 /如何在函数内调用项目 – sarah

回答

1

尝试使用该Array.prototype.forEach()函数。该函数将为数组中的每个元素调用,并传递该元素作为第一个参数。

ABC.getAggregation("V")[0].getItems().forEach(function (item) { 
    item.getPosition(); 
    //do something else 
}); 

更多关于 “.forEach()”

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach

+0

谢谢! :) 有用! – sarah

+0

你能帮我解决这个问题吗? http://stackoverflow.com/questions/38778974/how-to-call-items-from-an-array-inside-a-function – sarah

+0

你能帮我这个吗? http://stackoverflow.com/questions/38778974/how-to-call-items-from-an-array-inside-a-function – sarah

-2

!!显然,这是一个如何不要做一个很好的例子:P

您可以通过将它们分配项目到一个数组和循环是这样的:

var items = ABC.getAggregation("V")[0].getItems(); 
var returnString = ""; 
for (var key in items) { 
    if (items .hasOwnProperty(key)) { 
    var element = items [key]; 
    returnString += element.getPosition() + ','; 
    } 
} 
returnString = returnString.substring(0, x.length-1); 
console.log(returnString); 
+1

为什么不只是为了循环? –

+0

如何使用'forEach'或者仍然可以通过'for(var idx = 0,len = items.length; idx

+0

我的思路是,如果.getItems()在数组中返回一个未定义的值,我们不想迭代它并获取未定义的错误。 –

1

您可以使用for循环迭代槽全部其中。

for(var i=0; i<ABC.getAggregation("V").getItems().length; i++) { 
    ABC.getAggregation("V")[0].getItems()[i].getPosition(); 
} 
+1

你在你的循环中缺少()。 “ABC.getAggregation(”V“)[0] .getItems()[i] .getPosition();' –

+0

感谢编辑@ChrisG –

+0

它说”getItems()不是函数“ – sarah

1

您可以像任何其他数组对待它:

var myArray = ABC.getAggregation("V")[0].getItems(); 
for(var i=0; i< myArray.length; i++){ 
    myArray[i].getPosition(); //Do something with the position. 
} 
+0

谢谢! :)它的作品 – sarah

+0

任何帮助这个? :) http://stackoverflow.com/questions/38778974/how-to-call-items-from-an-array-inside-a-function – sarah

1

您可以使用foreach循环槽所有这些迭代。

ABC.getAggregation("V").getItems().forEach (item, index) { 
    return ABC.getAggregation("V")[0].getItems()[index].getPosition(); 
} 
-1

一个非常简单的方式,通过阵列中的每个对象进行迭代只是一个阵列上循环,你甚至都不需要声明的迭代变量。

例如:

var anArray = ['one', 'two', 'three']; 

for(i in anArray){ 
    console.log('index #: ' + i); 
    console.log(anArray[i]); 
} 

将打印出所有的元素anArray:张贴要求的问题

index #: 0 

one 

index #: 1 

two 

index #: 2 

three