具有 6 个键的 objects 数组,如何将它们分组为更少的键?
array of objects with 6 keys, how to group them into fewer keys?
抱歉,如果标题有点误导,我是 js 新手,所以不知道如何正确解释我想做的事情,所以我将展示我的代码和我期望的内容。
所以我有这个 objects
数组
const mi_array = [{
text: "1st title",
col2015: 81.8,
col2016: 86.4,
col2017: 67.3,
col2018: 70.8,
col2019: 67.6
},{
text: "2nd title",
col2015: 90.8,
col2016: 67.4,
col2017: 39.3,
col2018: 50.8,
col2019: 95.6
}];
我需要这样的东西
const new_array = [{
name: "1st title",
data: [81.8,86.4,67.3,70.8,67.6]
},{
name: "2nd title",
data: [90.8,67.4,39.3,50.8,95.6]
}];
我一直在寻找如何做到这一点,但这是我目前所找到的全部,它接近我需要的,但还不够
const new_array = [];
mi_array.forEach(value => {
for (let key in value) {
new_array.push(value[key]);
}
});
console.log(new_array);
但我的输出是这样的
["1st title", 81.8, 86.4, 67.3, 70.8, 67.6, "2nd title", 90.8, 67.4, 39.3, 50.8, 95.6];
您可以 map
通过数组创建一个新对象,其中 data
属性 是原始 属性 的数字值。
const mi_array=[{text:"1st title",col2015:81.8,col2016:86.4,col2017:67.3,col2018:70.8,col2019:67.6},{text:"2nd title",col2015:90.8,col2016:67.4,col2017:39.3,col2018:50.8,col2019:95.6}];
const result = mi_array.map(e => ({
name: e.text,
data: Object.values(e).filter(e => typeof e == 'number')
}))
console.log(result)
抱歉,如果标题有点误导,我是 js 新手,所以不知道如何正确解释我想做的事情,所以我将展示我的代码和我期望的内容。
所以我有这个 objects
数组const mi_array = [{
text: "1st title",
col2015: 81.8,
col2016: 86.4,
col2017: 67.3,
col2018: 70.8,
col2019: 67.6
},{
text: "2nd title",
col2015: 90.8,
col2016: 67.4,
col2017: 39.3,
col2018: 50.8,
col2019: 95.6
}];
我需要这样的东西
const new_array = [{
name: "1st title",
data: [81.8,86.4,67.3,70.8,67.6]
},{
name: "2nd title",
data: [90.8,67.4,39.3,50.8,95.6]
}];
我一直在寻找如何做到这一点,但这是我目前所找到的全部,它接近我需要的,但还不够
const new_array = [];
mi_array.forEach(value => {
for (let key in value) {
new_array.push(value[key]);
}
});
console.log(new_array);
但我的输出是这样的
["1st title", 81.8, 86.4, 67.3, 70.8, 67.6, "2nd title", 90.8, 67.4, 39.3, 50.8, 95.6];
您可以 map
通过数组创建一个新对象,其中 data
属性 是原始 属性 的数字值。
const mi_array=[{text:"1st title",col2015:81.8,col2016:86.4,col2017:67.3,col2018:70.8,col2019:67.6},{text:"2nd title",col2015:90.8,col2016:67.4,col2017:39.3,col2018:50.8,col2019:95.6}];
const result = mi_array.map(e => ({
name: e.text,
data: Object.values(e).filter(e => typeof e == 'number')
}))
console.log(result)