Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在对象中的对象数组中映射这组对象_Javascript - Fatal编程技术网

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()
。请看答案的第二段代码。太棒了!地图中的地图是我所需要的。