ドミニクレフ:
私はJavaScriptの初心者ですと私は1つのメイン配列の値とする二つの異なるアレイをしようとしています。
私の主な配列は、次のようになります。
0: Array(3) [ 2011, 127072.7, 51584 ]
1: Array(3) [ 2012, 125920.3, 59974 ]
2: Array(3) [ 2013, 129305.4, 15468 ]
3: Array(3) [ 2014, 135364, 84554 ]
4: Array(3) [ 2015, 136757, 98754 ]
5: Array(3) [ 2016, 155653.5, 155548 ]
6: Array(3) [ 2017, 164130.5, 284848 ]
そして、私は最初のように見える2つのアレイを作成する必要が:
0: Array(2) [ 2011, 127072.7]
1: Array(2) [ 2012, 125920.3]
2: Array(2) [ 2013, 129305.4]
3: Array(2) [ 2014, 135364]
4: Array(2) [ 2015, 136757]
5: Array(2) [ 2016, 155653.5]
6: Array(2) [ 2017, 164130.5]
(第一及び第二の値)
第二のように:
0: Array(2) [ 2011, 51584]
1: Array(2) [ 2012, 59974]
2: Array(2) [ 2013, 15468]
3: Array(2) [ 2014, 84554]
4: Array(2) [ 2015, 98754]
5: Array(2) [ 2016, 155548]
6: Array(2) [ 2017, 284848]
(第1、第3の値)
私は、スプライス、フィルターなどをしようが、私は起動する方法を、知りません。
私に厳密解を記述する必要はありませんが、唯一それを行う方法を繰り返します。
ニーナショルツ:
あなたは、動的なアプローチを取り、それぞれの新しい配列のキー値の後に、配列のすべてのアイテムを得ることができます。
var data = [[2011, 127072.7, 51584], [2012, 125920.3, 59974], [2013, 129305.4, 15468], [2014, 135364, 84554], [2015, 136757, 98754], [2016, 155653.5, 155548], [2017, 164130.5, 284848]],
[first, second] = data.reduce(
(r, [k, ...a]) => {
a.forEach((v, i) => r[i].push([k, v]));
return r;
},
Array.from({ length: Array.isArray(data[0]) ? data[0].length - 1 : 0 }, () => [])
);
console.log(first);
console.log(second);
.as-console-wrapper { max-height: 100% !important; top: 0; }