//数组的拆分重组//
var arr= [
{time: "2019", value1: 123, malue: 321},
{time: "2020 ", value1: 456, malue: 654}
]
//需求: 拆分arr 得到brr
//注明 这里的字段123 321 456 654 是相对应的。 pro是特定的分为vvv和sss
// 原需求是为了把得的字段做成2条折现统计图(这个提示可以忽略)
brr=[
{
time:"2019",
pro:"vvv",
value:"123"
},
{
time:"2019",
pro:"sss",
malue:"321"
},
{
time:"2020"
pro:"vvv",
value:"456"
},
{
time:"2020"
pro:"sss",
malue:"654"
}
]
//使用到了es6 的...语法
解决方法
const brr = [];
arr.forEach( item => {
const arr = [{},{}];
arr[0].time = item.time;
arr[0].pro = 'vvv',
arr[0].value = item.value;
arr[1].time = item.time;
arr[1].pro = 'sss',
arr[1].malue = item.malue;
brr.push(...arr)
})
console.log(brr) //↓↓↓
brr=[
{
time:"2019",
pro:"vvv",
value:"123"
},
{
time:"2019",
pro:"sss",
malue:"321"
},
{
time:"2020"
pro:"vvv",
value:"456"
},
{
time:"2020"
pro:"sss",
malue:"654"
}
]
感谢浏览以及回答!
我不清楚你的pro是不是这么生成规则
var arr = [
{ time: "2019", recordNums: 123, alarmNums: 321 },
{ time: "2020 ", recordNums: 456, alarmNums: 654 }
]
var brr = [];
for (var i = 0; i < arr.length; i++) {
for (var b in arr[i]) {
if (b != 'time') {
brr.push({
time: arr[i].time,
value: b == 'recordNums' ? arr[i].recordNums : arr[i].alarmNums,
pro: b == 'recordNums' ? 'vvv' : 'sss'
})
}
}
}
console.log(brr)