簡體   English   中英

Javascript - 加入對象的 arrays

[英]Javascript - join arrays of objects

我在 class 中有方法,它返回 8 個 arrays,每個對象有 8 個: [{...},{...},{...},{...},{...},{...},{...},{...}] [{...},{...},{...},{...},{...},{...},{...},{...}] etc.我想要得到的結果是一個包含所有這些對象的數組,如下所示: [{...},{...},{...},{...},{...},{...},{...},{...},{...},{...},{...},{...}]等我應該使用什么 function 來獲得這個? 我嘗試使用 concat() 但在這里我必須將另一個數組作為參數傳遞......

似乎.flat()正是您所需要的。

您可以使用arr.flat(depth);

此示例在mozilla javascript 文檔中給出:

var arr1 = [1, 2, [3, 4]];
arr1.flat();
// [1, 2, 3, 4]

var arr2 = [1, 2, [3, 4, [5, 6]]];
arr2.flat();
// [1, 2, 3, 4, [5, 6]]

var arr3 = [1, 2, [3, 4, [5, 6]]];
arr3.flat(2);
// [1, 2, 3, 4, 5, 6]

如果您只是嘗試將所有對象合並到一個數組中,那么一種方法是使用Array.reduce

 const result = [ [{}], [{}], [{}], [{}], [{}], [{}], [{}], [{}] ]; const final = result.reduce( (acc, curr) => { return [...acc, ...curr]; }, []); console.log(final);

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce

假設以下作為您的對象結構數組

 let array = [[{name: 1}, {name: 2}, {name: 3}], [{name: 1}, {name: 2}, {name: 3}], [{name: 1}, {name: 2}, {name: 3}]] let out1 = [].concat.apply([], array) console.log(out1)

如果您使用最新的 ES,那么您可以嘗試使用這個array.flat ,正如 sirko 在評論中提到的那樣

 let array = [[{name: 1}, {name: 2}, {name: 3}], [{name: 1}, {name: 2}, {name: 3}], [{name: 1}, {name: 2}, {name: 3}]] let out2 = array.flat() console.log(out2)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM