我的問題如下:如何將數組元素分組到與JavaScript相同的數組內的子數組?將數組元素轉換爲子數組?
例:[ 11, 5, 13, 10, 23, 25, 7, 6 ]
我想達到的結果是:[ [11, 5], [13, 10], [23, 25], [7, 6] ]
我的問題如下:如何將數組元素分組到與JavaScript相同的數組內的子數組?將數組元素轉換爲子數組?
例:[ 11, 5, 13, 10, 23, 25, 7, 6 ]
我想達到的結果是:[ [11, 5], [13, 10], [23, 25], [7, 6] ]
你可以通過陣列使用index/2
只是迭代,並找到索引。 然後創建一個數組或將index
元素推入數組中。 以下是完整的代碼。
var arr = [ 11, 5, 13, 10, 23, 25, 7, 6 ];
let newArr = arr.reduce((acc, curr, i) => {
let index = Math.floor(i/2);
let a = acc[index] || [];
a.push(curr);
acc[index] = a;
return acc;
}, []);
console.log(newArr);
傳遞給'reduce'回調函數的第三個參數是'currentIndex'。使用它。 – Cerbrus
謝謝<3 :) –
因爲我們現在得到的答案,至少讓我們簡化方法:
var arr = [ 11, 5, 13, 10, 23, 25, 7, 6 ];
let newArr = arr.reduce((acc, n, i) => {
i = Math.floor(i/2); // Calculate the proper index
acc[i] = acc[i] || []; // Make sure acc[i] is an array
acc[i].push(n); // Add the current value to the array.
return acc;
}, []);
console.log(newArr);
那你試試這麼遠嗎? –
歡迎來到Stack Overflow!我們不鼓勵那些只是在背景之外陳述問題的帖子,並期望社羣解決問題。假設你試圖自己解決它並陷入困境,那麼如果你寫下了你的想法和你無法想象的東西,這可能會有所幫助。它肯定會爲你的帖子提供更多的答案。在此之前,這個問題將被投票停止/降低投票。 – Cerbrus
_「嘗試了一些代碼」_,所以告訴我們你試過的是什麼... – Cerbrus