我有一个像这样的对象数组:
[{_colorIndex: 0,name: "ATV Sport"},{_colorIndex: 1,name: "Sport"}]
我想循环遍历该数组,并将每个_colorIndex值替换为颜色数组中的值。 阵列:
["#0E5B7E", "#A871A8"]
结果:
[{_colorIndex: "#0E5B7E",name: "ATV Sport"},{_colorIndex: "#A871A8",name: "Sport"}]
最好的方法是什么?
答案 0 :(得分:2)
假设colors数组总是与对象数组相同或大于:
for (var i = 0; i < obj.length; i++) {
obj[i]._colorIndex = colorArray[i];
}
答案 1 :(得分:0)
您可以使用map
函数,因为它是不可变的。不幸的是,它只支持IE9 +。
var data = [{_colorIndex: 0,name: "ATV Sport"},{_colorIndex: 1,name: "Sport"}];
var colors = ["#0E5B7E", "#A871A8"];
function replaceColors(data, colors) {
return data.map(function(item) {
var colorIndex = parseInt(item._colorIndex,10);
if (!isNaN(colorIndex)
&& (colorIndex > -1)
&& (colorIndex < colors.length))
item._colorIndex = colors[colorIndex]
return item;
});
}
var newData = replaceColors(data, colors);