这是我有的一个数组:
var arr1 = [
{ ModuleID : 'one', ModuleValue : 'valueX'},
{ ModuleID : 'one', ModuleValue : 'valueV'},
{ ModuleID : 'one', ModuleValue : 'valueE'},
{ ModuleID : 'one', ModuleValue : 'valueY'},
{ ModuleID : 'two', ModuleValue : 'valueZ'},
{ ModuleID : 'two', ModuleValue : 'valueB'},
{ ModuleID : 'two', ModuleValue : 'valueA'}
];
我想根据 ModuleID 将连续的“索引”号添加到我的数组中,如下所示:
var arr2 = [
{ ModuleID : 'one', ModuleValue : 'valueX', index : 0},
{ ModuleID : 'one', ModuleValue : 'valueV', index : 1},
{ ModuleID : 'one', ModuleValue : 'valueE', index : 2},
{ ModuleID : 'one', ModuleValue : 'valueY', index : 3},
{ ModuleID : 'two', ModuleValue : 'valueZ', index : 0},
{ ModuleID : 'two', ModuleValue : 'valueB', index : 1},
{ ModuleID : 'two', ModuleValue : 'valueA', index : 2}
];
到目前为止,我已经想出了这段代码:
var arr2 = [];
var index = 0;
for (var i = 0; i < arr1.length; ++i) {
if (i < arr1.length && arr1[i].ModuleID = arr1[i+1].ModuleID ) {
index = index + 1;
} else {
index = 0;
};
arr2.push({ModuleID: arr1[i].ModuleID, ModuleValue: arr1[i].ModuleValue, index: index});
};
但是,它会重置 ModuleID 最后一个值的连续数字,而不是第一个值:
var arr2 = [
{ ModuleID : 'one', ModuleValue : 'valueX', index : 1},
{ ModuleID : 'one', ModuleValue : 'valueV', index : 2},
{ ModuleID : 'one', ModuleValue : 'valueE', index : 3},
{ ModuleID : 'one', ModuleValue : 'valueY', index : 0},
{ ModuleID : 'two', ModuleValue : 'valueZ', index : 1},
{ ModuleID : 'two', ModuleValue : 'valueB', index : 2},
{ ModuleID : 'two', ModuleValue : 'valueA', index : 3}
];
我该如何改进我的代码?
幕布斯7119047
心有法竹
Smart猫小萌
一只斗牛犬
慕田峪4524236
相关分类