我试图基于对象数组构建一个新的对象specs数组。已经有一些类似的问题,但对我没有帮助。
const specs =
[
{ label: 'Brand', value: 'Nike' },
{ label: 'Age range', value: '8 to 13' },
{ label: 'Age range', value: '14+' }
]
我想跳过与我的代码一起使用的“品牌”,并且我希望如果有多个具有相同的对象label,它们需要合并到一个包含该标签和ALL值的唯一对象中,因此输出将删除品牌并合并其他值:
[
{ label: 'Age range', value: '8 to 13 - 14+' }
]
这是我的代码:
var newSpecs = []
for (let x = 0; x < specs.length; x++) {
if (specs[x].label === 'Brand') continue
for (let j = x + 1; j < specs.length; j++) {
if (specs[x].label === specs[j].label) {
specs[x].value += ' - ' + specs[j].value
}
}
newSpecs.push({ label: specs[x].label, value: specs[x].value })
}
return newSpecs
但这根本行不通,它创建了多个合并的年龄范围。我又尝试了一次使用delete和其他东西,但让我“无法读取未定义的标签”,所以我会保持这种方式,但我不知道该怎么做