一位写bug的前端人
2020-03-15 00:49
采纳率: 33.3%
浏览 153
已采纳

拆分数组得的一个新数组【web/JavaScript】?

//数组的拆分重组//

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

感谢浏览以及回答!

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • qq_15714535 2020-03-18 13:34
    已采纳

    我不清楚你的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)
    
    已采纳该答案
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题