我正在尝试遍历类似于以下结构的数组,并且对于具有相同 id 的每个对象,我希望它们组合成一个对象,但具有与该 id 关联的所有“名称”的数组。我的数组是按 id 预先排序的,我不能使用 JQuery,只能使用 vanilla JS。
转换这个:
var array = [
{id=1, name = "Orange"},
{id=1, name = "Blue"},
{id=1, name = "Green"},
{id=2, name = "Blue"},
{id=3, name = "Orange"},
{id=3, name = "Blue"}
]
对此:
var newArray = [
{id=1, nameList = [Orange, Blue, Green]},
{id=2, nameList = [Blue]},
{id=3, namelist = [Orange, Blue]}
]
我试图通过将第一个对象与数组中的下一个对象进行比较,然后将第一个对象设置为第二个对象来做类似的事情,但因为“secondObject”实际上不是数组中的下一个对象而被卡住了。
for (var i in array) {
firstObject = array[i];
secondObject = array[i + 1];
if (firstObject.id === secondObject.id) {
firstObject['nameList'] = [firstObject.name + ',' + secondObject.name]
} else {
continue;
}
firstObject = secondObject;
}
我必须使用几千个 id 来执行此操作,并且大多数 id 都以不同的名称重复,但是有一些单个 id 对象,例如 id 2。