js数组循环拆分后,生成行数组的问题?

     let arr =[{id:1,name:2,job:1},{id:2,name:1,job:1},{id:3,name:2,job:0},{id:4,name:0,job:0}];

我想实现arr遍历后,把name>0的拆成一个新对象,把job大于的0的也拆成一个新对象,最后生成一个新数组,类似下面的代码。我想知道怎么用ES6实现?或者有什么高效的办法?

 newArr =[{id:1,job:1},{id:2,job:1},{id:1,name:2},{id:2,name:1},{id:3,name:2}];
阅读 1.5k
1 个回答

是这意思吗?

var arr =[{id:1,name:2,job:1},{id:2,name:1,job:1},{id:3,name:2,job:0},{id:4,name:0,job:0}];

var newArr = arr.reduce((a,b)=>{
    if(b.name > 0){
        a.push({id: b.id, name: b.name})
    }
    if(b.job > 0){
        a.push({id: b.id, job: b.job})
    }
    return a;
},[])
推荐问题