我如何 .map() 通过分层的数据?
How do I .map() through data that is layered?
我正在了解 fetch()
并且正在努力解决一个问题。我有一些正在获取的 JSON 数据,但关键是每个项目的“父级”,例如它看起来像:
products
p1
description:"Lorem Ipsum"
name:"some product"
price:9.99
p2
description:"Dolar sit amet"
name:"another product"
price:15.5
我想.map()
将这些数据放入一个新数组中,例如:
const newData= data.results.map(item => {
return {
id: item.id,
name: item.name,
description: item.description,
price: item.price
};
});
但我不明白如何在没有密钥的情况下遍历每个项目并保存它的 ID。
有人知道我该怎么做吗?
您可以使用 Object.entries()
函数执行此操作:
The Object.entries() method returns an array of a given object's own enumerable string-keyed property [key, value] pairs. This is the same as iterating with a for...in loop, except that a for...in loop enumerates properties in the prototype chain as well.
Object.entries(data.products).map(([key, value]) => ({
id: key,
name: value.name,
description: value.description,
price: value.price
}));
因为您发布的内容看起来像对象,而不是数组。您必须先将其转换为数组。我建议使用 Object.entries()
Object.entries(products).map(([key, value])=> {
return {
id: key,
name: value.name,
description: value.description,
price: value.price
}
})
我正在了解 fetch()
并且正在努力解决一个问题。我有一些正在获取的 JSON 数据,但关键是每个项目的“父级”,例如它看起来像:
products
p1
description:"Lorem Ipsum"
name:"some product"
price:9.99
p2
description:"Dolar sit amet"
name:"another product"
price:15.5
我想.map()
将这些数据放入一个新数组中,例如:
const newData= data.results.map(item => {
return {
id: item.id,
name: item.name,
description: item.description,
price: item.price
};
});
但我不明白如何在没有密钥的情况下遍历每个项目并保存它的 ID。
有人知道我该怎么做吗?
您可以使用 Object.entries()
函数执行此操作:
The Object.entries() method returns an array of a given object's own enumerable string-keyed property [key, value] pairs. This is the same as iterating with a for...in loop, except that a for...in loop enumerates properties in the prototype chain as well.
Object.entries(data.products).map(([key, value]) => ({
id: key,
name: value.name,
description: value.description,
price: value.price
}));
因为您发布的内容看起来像对象,而不是数组。您必须先将其转换为数组。我建议使用 Object.entries()
Object.entries(products).map(([key, value])=> {
return {
id: key,
name: value.name,
description: value.description,
price: value.price
}
})