[英]How to return not all of the properties of an object from arrays with an array method?
[英]Union arrays from all object properties
可以說我有一個對象:
let obj={
hash1:{
images:[img1,img2....]
}
hash2:{
images:[img100,img200....]
}
hash3:{
images:[img1000,img2000....]
}
...
}
我想將所有這些數組合並為一個數組。 我了解可以使用下一個代碼:
let unionArray=[];
Object.values(obj).forEach((item)=>{
unionArray=unionArray.concat(item.images)
});
是否有更優雅的方式來執行此類任務,例如使用某種框架或單行編碼。
數組約簡在這里非常好:
let union = Object.values(obj).reduce((c, i) => c.concat(i.images), []);
您可以對Object.keys()
和ES6擴展語法使用map()
。
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)
使用Array#map
。
const union = [].concat(...Object.values(obj).map(v => v.images));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.