我的问题如下:如何将数组元素分组到与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