假设我有对象数组:
originalData = [
{
"id": 1
},
{
"id": 2
},
{
"id": 3
},
{
"id": 4
},
{
"id": 5
},
{
"id": 6
}
]
我有一串字符串:
newData = ['1','2','3']
如何按顺序将newData
推送到originalData
?
预期结果应如下:
originalData = [
{
"id": 1,
"color":'1'
},
{
"id": 2,
"color":'2'
},
{
"id": 3,
"color":'3'
},
{
"id": 4,
"color":'1'
},
{
"id": 5,
"color":'2'
},
{
"id": 6,
"color":'3'
}
]
这是我的解决方法:
originalData.forEach(function (object,i) {
object.color = newData[i]
});
答案 0 :(得分:1)
使用变量j
并随着时间的推移重置它。
var j = 0;
originalData.forEach(function (object,i) {
object.color = newData[j];
j += 1;
if(j > newData.length)
j = 0;
});
答案 1 :(得分:0)
根据newData数组长度动态重置计数器。
originalData = [{"id": 1},{"id": 2},{"id": 3},{"id": 4},{"id": 5},{"id": 6}];
newData = ['1','2','3'];
for(var i = 0, j=0; i < originalData.length; i++, j++) {
originalData[i].color = newData[j];
if(j == newData.length -1){
j = -1;
}
}
console.log(originalData);