vie*_*oli 3 javascript arrays loops
我有一个for循环,将数据添加到array. 但是当我console.log数组时,它充满了循环的最后一项for!
这是我的代码:
var materialsData = results[1].data, // results[1].data is a http.get return
ln = Object.size(materialsData),
materials = [],
material = {};
material['Product'] = {};
for (var i = 0; i < ln; i++) {
material.Product['Name'] = materialsData[i].Product.Name;
material.Product['Id'] = materialsData[i].Product.Id;
material.StartingDate = materialsData[i].StartingDate.replace("T00:00:00", "").split('-').reverse().join('-');
material.Device = materialsData[i].Device;
materials.push(material);
}
Run Code Online (Sandbox Code Playgroud)
material在块中定义for。当对象通过引用传递时,对象也会object被更新并推送到数组中。
for (var i = 0; i < ln; i++) {
var material = {
Product : {
Name : materialsData[i].Product.Name,
Id : materialsData[i].Product.Id,
},
StartingDate : materialsData[i].StartingDate.replace("T00:00:00", "").split('-').reverse().join('-'),
Device : materialsData[i].Device
};
materials.push(material);
}
Run Code Online (Sandbox Code Playgroud)
此外,您可以使用Array.map()
var materials = materialsData.map(function(m){
return {
Product : {
Name : m.Product.Name,
Id : m.Product.Id,
},
StartingDate : m.StartingDate.replace("T00:00:00", "").split('-').reverse().join('-'),
Device : m.Device
};
})
Run Code Online (Sandbox Code Playgroud)