一位写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 根据以下文字信息,做EA模型图
  • ¥15 删除虚拟显示器驱动 删除所有 Xorg 配置文件 删除显示器缓存文件 重启系统 可是依旧无法退出虚拟显示器
  • ¥15 vscode程序一直报同样的错,如何解决?
  • ¥15 关于使用unity中遇到的问题
  • ¥15 开放世界如何写线性关卡的用例(类似原神)
  • ¥15 关于并联谐振电磁感应加热
  • ¥60 请查询全国几个煤炭大省近十年的煤炭铁路及公路的货物周转量
  • ¥15 请帮我看看我这道c语言题到底漏了哪种情况吧!
  • ¥60 关机时蓝屏并显示KMODE_EXCEPTION_NOT_HANDLED,怎么修?
  • ¥66 如何制作支付宝扫码跳转到发红包界面