来自所有对象属性的联合数组

时间:2017-07-12 11:41:58

标签: javascript arrays node.js

假设我有一个对象:

cocoapods

我想将所有这些数组合并到一个数组中。 我知道我可以使用下一个代码:

    let obj={
         hash1:{
            images:[img1,img2....]
         }
         hash2:{
            images:[img100,img200....]
         }  
         hash3:{
             images:[img1000,img2000....]
         }
      ...       
}

是否有更优雅的方式来执行此类任务,例如使用某种框架或一行编码。

3 个答案:

答案 0 :(得分:4)

数组缩减在这里做得非常好:

let union = Object.values(obj).reduce((c, i) => c.concat(i.images), []);

答案 1 :(得分:0)

您可以在map()和ES6传播语法上使用Object.keys()



let obj = {"hash1":{"images":["img1","img2"]},"hash2":{"images":["img100","img200"]},"hash3":{"images":["img1000","img2000"]}}

var arr = [].concat(...Object.keys(obj).map(e => obj[e].images));
console.log(arr)




答案 2 :(得分:0)

使用Array#map

const union = [].concat(...Object.values(obj).map(v => v.images));