2017-09-26 9 views
-1

私は、次の形式で配列している場合:私は、ここで説明したような機能を平らに使用してみました2D配列をtypescriptでどのように平坦化できますか?

[0]: 
    key: "id_1" 
    prop1: "abc" 
    prop2: "def" 
[1]: 
    key: "id_2" 
    prop1: "ghi" 
    prop2: "jkl" 
[2]: 
    key: "id_3" 
    prop1: "mno" 
    prop2: "pqr" 
[4]: 
    key: "id_4" 
    prop1: "stu" 
    prop2: "vwx" 

[0]: 
    ["id_1"]: 
     prop1: "abc" 
     prop2: "def" 
    ["id_2"]: 
     prop1: "ghi" 
     prop2: "jkl" 
[1]: 
    ["id_3"]: 
     prop1: "mno" 
     prop2: "pqr" 
    ["id_4"]: 
     prop1: "stu" 
     prop2: "vwx" 

がどのように配列に次の形式を使用していることをマップすることができました: Merge/flatten an array of arrays in JavaScript? しかし、私はどのように私は各平坦化された子要素のキーを設定するか分からない。

+0

何をしているのかは、単に配列を平坦化するのではなく、配列とプロパティを混在させて新しい配列を作成することです。 –

+1

有効なサンプルデータを投稿してください。 – baao

答えて

0

私はあなたがそれを投稿することを拒否したようなデータ構造が正しいかどうかわからないんだけど、私は右推測している場合は減らし、マップの組み合わせ

let arr = [ 
 
    [{id_1: {prop1: 'abc', prop2: 'def'}}, {id_2: {prop1: 'ghi', prop2: 'jkl'}}], 
 
    [{id_3: {prop1: 'abc', prop2: 'def'}}, {id_4: {prop1: 'ghi', prop2: 'jkl'}}] 
 
]; 
 

 

 
function flatten(arr) { 
 
    return arr.reduce((a, b) => { 
 
    return a.concat(b.map(e => { 
 
     let key = Object.keys(e)[0]; 
 
     return Object.assign({ 
 
     key 
 
     }, e[key]); 
 
    })) 
 
    }, []) 
 
} 
 

 
console.log(flatten(arr));
で望ましい結果を得ることができます

関連する問題