2017-09-28 10 views
0

私はキーベースの配列は:配列内の2レベルをループし、親項目と子項目をログに記録しますか?

const selected = { 
    1: [a, b, c], 
    2: [d, e, f] 
} 

Iは、第2レベルの各項目をループする必要があり、また、その親を印刷します。ですから、私の出力は次のようになる必要があります:

1a 
1b 
1c 
2d 
2e 
3f 

私は非常に遠くにいません。以下は、オブジェクト全体をloggsが、私はそれが「1」で実行され、「2」

Array.of(selected).forEach((item)=>{ 
    console.log(item) 
}); 

イムソリューションのためのES6を使用してとても幸せバベルを使用すると予想しました。

+0

なぜ 'テンキーの代わりに実際の配列でオブジェクトをselected'?そして 'Array.from(selected)'は 'selected'を配列にラップします。 – Andreas

+0

ここから '3f'を取得していますか? –

答えて

0

必要なのは.forEach()およびネストされたループとObject.entriesです。

const selected = { 
 
    1: ['a', 'b', 'c'], 
 
    2: ['d', 'e', 'f'] 
 
}; 
 
Object.entries(selected) 
 
    .forEach(([key, arr]) => arr.forEach(v => console.log(key + v)));

あなたがまばらな配列を持っていると思いますけれども、あなたが、.lengthを持っていた場合Array.fromではなくArray.ofで動作します。


const selected = { 
 
    1: ['a', 'b', 'c'], 
 
    2: ['d', 'e', 'f'], 
 
    length: 3, 
 
}; 
 
Array.from(selected) 
 
    .forEach((arr, i) => arr && arr.forEach(v => console.log(i + v)));

0

Object.entries()は素晴らしいです:

const selected = { 
 
    1: ['a', 'b', 'c'], 
 
    2: ['d', 'e', 'f'] 
 
}; 
 
Object.entries(selected).forEach(([key, value]) => { 
 
    value.forEach(v => console.log(key + v)); 
 
});

関連する問題