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

拆分数组得的一个新数组【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)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 linux驱动,linux应用,多线程
  • ¥20 我要一个分身加定位两个功能的安卓app
  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助