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
]
}