Javascript 如何在对象中的对象数组中映射这组对象
我想要Javascript 如何在对象中的对象数组中映射这组对象,javascript,Javascript,我想要cooked var kvArray = [ {key: 1, value: [{items: 10, price: {raw: 10, cooked: 20}}, {items: 20, price: {raw: 20, cooked: 60}}, {items: 30, price: {raw: 30, cooked: 90}}, {items: 40, price: {raw: 50, cooked: 70}}, {items: 50, price: {raw: 50, cook
cooked
var kvArray = [
{key: 1, value: [{items: 10, price: {raw: 10, cooked: 20}}, {items: 20, price: {raw: 20, cooked: 60}}, {items: 30, price: {raw: 30, cooked: 90}}, {items: 40, price: {raw: 50, cooked: 70}}, {items: 50, price: {raw: 50, cooked: 90}}]},
{key: 2, value: [{items: 40, price: {raw: 10, cooked: 20}}, {items: 30, price: {raw: 10, cooked: 70}}, {items: 20, price: {raw: 20, cooked: 20}}, {items: 10, price: {raw: 20, cooked: 20}}, {items: 60, price: {raw: 60, cooked: 20}}]},
{key: 3, value: [{items: 70, price: {raw: 60, cooked: 20}}, {items: 60, price: {raw: 10, cooked: 70}}, {items: 50, price: {raw: 10, cooked: 60}}, {items: 30, price: {raw: 30, cooked: 20}}, {items: 20, price: {raw: 10, cooked: 80}}]}
];
kvArray.map((kvA , index) =>{
console.log(kvA.value)
} )
您需要另一个map()
:
var kvArray=[
{键:1,值:[{项目:10,价格:{生的:10,熟的:20}},{项目:20,价格:{生的:20,熟的:60},{项目:30,价格:{生的:30,熟的:90},{项目:40,价格:{生的:50,熟的:70},{项目:50,价格:{生的:50,熟的:90},
{键:2,值:[{项目:40,价格:{生的:10,熟的:20}},{项目:30,价格:{生的:10,熟的:70},{项目:20,价格:{生的:20,熟的:20},{项目:10,价格:{生的:20,熟的:20},{项目:60,价格:{生的:60,熟的:20},
{键:3,值:[{项目:70,价格:{生的:60,熟的:20}},{项目:60,价格:{生的:10,熟的:70},{项目:50,价格:{生的:10,熟的:60},{项目:30,价格:{生的:30,熟的:20},{项目:20,价格:{生的:10,熟的:80}]
];
var cookedArr=kvArray.map((kvA,索引)=>{
返回kvA.value.map(p=>p.price.cooked)
});
console.log(cookedArr)代码>我将执行reduce,然后映射,它将返回平面数组上的所有熟值
var kvArray=[
{键:1,值:[{项目:10,价格:{生的:10,熟的:20}},{项目:20,价格:{生的:20,熟的:60},{项目:30,价格:{生的:30,熟的:90},{项目:40,价格:{生的:50,熟的:70},{项目:50,价格:{生的:50,熟的:90},
{键:2,值:[{项目:40,价格:{生的:10,熟的:20}},{项目:30,价格:{生的:10,熟的:70},{项目:20,价格:{生的:20,熟的:20},{项目:10,价格:{生的:20,熟的:20},{项目:60,价格:{生的:60,熟的:20},
{键:3,值:[{项目:70,价格:{生的:60,熟的:20}},{项目:60,价格:{生的:10,熟的:70},{项目:50,价格:{生的:10,熟的:60},{项目:30,价格:{生的:30,熟的:20},{项目:20,价格:{生的:10,熟的:80}]
];
console.log(
kvArray.reduce(
(arr,elem)=>arr.concat(elem.value),[]
).map(a=>a.price.cooked)
)
有一堆熟的
s。您是希望每个对象都有一个数组,还是仅用于控制台.log
em all?不是数组,而是每个对象。然后不要使用map
,使用forEach
,。map
是您需要创建新数组的时候。是否要控制台.log每个对象?您需要迭代kvA.value
以及map中的OK map。我这样修改它:kvArray.map((kvA,index)=>{kvA.value.map(p=>console.log(p.price.cooked))代码>@Deke——您使用的是arrow函数体,没有任何返回语句。移除周围的{}
或在kvA.value.map…
@Deke之前放置return
,map()
应具有return
。如果不需要返回,只需使用forEach()
。请看答案的第二段代码。太棒了!地图中的地图是我所需要的。