我需要迭代这个json并将值推送到另一个数组
[
{
"id": 1,
"nombre": "Samson",
"marcaModelo": [
{
"id": 6,
"nombre": "API 6D "
}
]
}
{
"id": 6,
"nombre": "Endress + Hauser",
"marcaModelo": [
{
"id": 10,
"nombre": "Proline t-mass 65F50-AK2AH1RCBBCA"
},
{
"id": 8,
"nombre": "Cerabar M"
}
]
}
]
我用这个
Object.entries(res).forEach((value, key) => {
console.log(key, value)
this.marcas.push({
'marcaId': res[key].id,
'marcaNombre': res[key].nombre,
'modeloId': res[key].marcaModelo[0].id,
'modeloNombre': res[key].marcaModelo[0].nombre
})
console.log(this.marcas)
})
但只将一个marcaModelo对象推入marcas数组,如果我将marcaModelo [0]替换为marcaModelo [key],我得到一个未定义的。
我需要这样的东西
{
marcaId:6
marcaNombre:"Endress + Hauser"
modeloId:[10, 8]
modeloNombre:[Proline t-mass 65F50-AK2AH1RCBBCA, Cerabar M]
}
答案 0 :(得分:0)
您需要一个所有marcaModelo
个对象的嵌套循环;您可以使用.map()
在每个元素上返回函数结果的数组。您似乎也不需要使用Object.entries()
。原始对象是一个数组,您可以直接在其上使用.forEach()
。
res.forEach(value => {
console.log(value);
this.marcas.push({
'marcaId': value.id,
'marcaNombre': value.nombre,
'modeloId': value.marcaModelo.map(o => o.id),
'modeloNombre': value.marcaModelo.map(o => o.nombre)
});
console.log(this.marcas);
}
答案 1 :(得分:0)
或
res.map(({ id, nombre, marcaModelo }) => ({
marcaId: id,
marcaNombre: nombre,
modeloId: marcaModelo.map(m => m.id),
modeloNombre: marcaModelo.map(m => m.nombre),
}));