[英]Iterate through Json Object with nested Array Javascript
I need to iterate this json and push the values into an other array 我需要迭代此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"
}
]
}
]
I made out with this 我弄清楚了
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)
})
but only push one marcaModelo object into marcas array, if I replace marcaModelo[0] for marcaModelo[key] I get an undefined. 但仅将一个marcaModelo对象推入marcas数组中,如果我将marcaModelo [0]替换为marcaModelo [key],则会得到未定义。
I need something like this 我需要这样的东西
{
marcaId:6
marcaNombre:"Endress + Hauser"
modeloId:[10, 8]
modeloNombre:[Proline t-mass 65F50-AK2AH1RCBBCA, Cerabar M]
}
You need a nested loop for all the marcaModelo
objects; 您需要为所有
marcaModelo
对象提供一个嵌套循环。 you can use .map()
to return an array of the results of a function on each element.. It also doesn't seem like you need to use Object.entries()
. 您可以使用
.map()
返回每个元素上的函数结果数组。似乎也不需要使用Object.entries()
。 The original object is an array, you can use .forEach()
directly on it. 原始对象是一个数组,可以直接在其上使用
.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);
}
or 要么
res.map(({ id, nombre, marcaModelo }) => ({
marcaId: id,
marcaNombre: nombre,
modeloId: marcaModelo.map(m => m.id),
modeloNombre: marcaModelo.map(m => m.nombre),
}));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.