Javascript 将数组转换为具有数组值的对象

Javascript 将数组转换为具有数组值的对象,javascript,arrays,Javascript,Arrays,我需要转换这个数组 [ { _id: 'indoor', count: 12 }, { _id: 'outdoor', count: 34 } ] 在这一结果中: { label: ['in', 'out'], data: [12, 34]} 所以我需要得到数组中的标签_id,并用一些单独的文本替换它们,我需要得到数据数组中的值。 当然,两者的顺序应该相同 对于第二部分,我会做如下的事情 array.map(c => c.count) 我可以对标签值执行相同的操作,但如何使用单个文本

我需要转换这个数组

[ { _id: 'indoor', count: 12 }, { _id: 'outdoor', count: 34 } ]
在这一结果中:

{ label: ['in', 'out'], data: [12, 34]}
所以我需要得到数组中的标签_id,并用一些单独的文本替换它们,我需要得到数据数组中的值。 当然,两者的顺序应该相同

对于第二部分,我会做如下的事情

array.map(c => c.count)
我可以对标签值执行相同的操作,但如何使用单个文本? 例如,“室内”应改为“汽车”,“室外”应改为“飞机”。

让标签={ 室内:“汽车”, 户外:“平原” }; 让输入=[{ _id:‘室内’, 计数:12 }, { _id:‘户外’, 计数:34 }]; 让输出=input.reduceoutput,inObj=>{ output.label.pushlabels[inObj.\u id]; output.data.pushinObj.count; 返回输出; }, { 标签:[], 数据:[] }; console.logoutput 让标签={ 室内:“汽车”, 户外:“平原” }; 让输入=[{ _id:‘室内’, 计数:12 }, { _id:‘户外’, 计数:34 }]; 让输出=input.reduceoutput,inObj=>{ output.label.pushlabels[inObj.\u id]; output.data.pushinObj.count; 返回输出; }, { 标签:[], 数据:[] };
console.logoutput 在映射回调中,您可以检查文本并返回所需的字符串

让数据=[{ _id:‘室内’, 计数:12 }, { _id:‘户外’, 计数:34 }] 设newData={ 标签:data.mapitem=>{ 如果是项目.\u id===‘室内’{ 返回“in”; }否则{ 返回“out”; } }, 数据:data.mapitem=>item.count };
console.lognewData在map callback中,您可以检查文本并返回所需的字符串

让数据=[{ _id:‘室内’, 计数:12 }, { _id:‘户外’, 计数:34 }] 设newData={ 标签:data.mapitem=>{ 如果是项目.\u id===‘室内’{ 返回“in”; }否则{ 返回“out”; } }, 数据:data.mapitem=>item.count }; console.lognewData 下一步将为您提供:

{
  label: [
    "in",
    "out"
  ],
  data: [
    12,
    34
  ]
}
下一步将为您提供:

{
  label: [
    "in",
    "out"
  ],
  data: [
    12,
    34
  ]
}
您可以使用reduce方法:

让sourceData=[ {u id:'室内',计数:12}, {u id:'户外',计数:34} ]; 常量贴图={室内:“入”,室外:“出”}; const result=sourceData.reducea,c=>{ a、 label=a.label | |[]; a、 数据=a.data | |[]; a、 label.pushmaps[c._id]; a、 data.pushc.count; 返回a; }, {}; console.logresult 您可以使用reduce方法:

让sourceData=[ {u id:'室内',计数:12}, {u id:'户外',计数:34} ]; 常量贴图={室内:“入”,室外:“出”}; const result=sourceData.reducea,c=>{ a、 label=a.label | |[]; a、 数据=a.data | |[]; a、 label.pushmaps[c._id]; a、 data.pushc.count; 返回a; }, {}; console.logresult 常数数据= [ {u id:'室内',计数:12}, {u id:'户外',计数:34} ] 常数结果={ 标签:data.mapa=>a._id.替换“门”,, 数据:data.mape=>e.count } 控制台。日志结果 常数数据= [ {u id:'室内',计数:12}, {u id:'户外',计数:34} ] 常数结果={ 标签:data.mapa=>a._id.替换“门”,, 数据:data.mape=>e.count }
console.LogResult2是否可以按给定的标签顺序更改数据顺序?例如,如果我想在第一个位置获取“out”值,当然还有更多的数据值…@user3142695是的,这是可能的,但不是在回答中使用的reduce函数,不是吗?是否可以通过给定的标签顺序更改数据的顺序?例如,如果我想得到第一个位置的“out”值,当然还有更多的数据值…@user3142695是的,这是可能的,但不是在回答中使用的reduce函数,不是吗?
{
  label: [
    "in",
    "out"
  ],
  data: [
    12,
    34
  ]
}