我有一个5个对象的数组,我需要循环并返回一个对象数组。但是,当我这样做时,它只返回最后一个对象5次。angular.for每个返回的对象数组重复同一个对象
我有两段代码,它们完全相同,而另一段不工作。
工作代码:(通过字符串循环,在|上分割并返回数组中的对象);
angular.forEach(exampleString, function(data) {
if (data.indexOf('|') !== -1) {
data = data.split('|');
//self.model.getDataFromArray()returns an object
newArray.push(new self.model.getDataFromArray(data));
}
});
//returns array of objects
不起作用:(遍历对象,并返回一个对象,但只推最后1到阵列5次)
angular.forEach(exampleObjects, function(data) {
this.push(new self.model.getDataFromObject(data));
}, newArray);
有什么,我”在做或不做这导致这失败?我可以说的唯一真正的区别是,我从一个分割的字符串开始,而不是从一个对象开始。
只是为了澄清,如果我做到以下几点我得到相同的重复:
angular.forEach(exampleObjects, function(data) {
newArray.push(new self.model.getDataFromObject(data));
});
是exampleString一个字符串?或者它是一个数组?你的评估“通过字符串循环”是不正确的,你的foreach的第一个参数应该是你迭代的对象/数组。您不会迭代字符串值。 – sksallaj
@sksallaj对不起,这是一串字符串。 – gardni