给定一个数组,[1, 2, 3, 4, 5]
,按顺序配对每个项目的最有效方法是什么,如下所示:[[1 ,2]、[2,3]、[3,4]、[4,5]]
?
我一直在尝试使用reduce
方法,但无济于事,想要一些优雅的东西。
最佳答案
使用简单for loop
var data = [1, 2, 3, 4, 5];
var res = [];
for (var i = 0; i < data.length-1; i++) {
res.push(data.slice(i, i+2));
}
console.log(res);
与 Array#reduce
方法
console.log(
[1, 2, 3, 4, 5].reduce(function(a, b, i) {
if (i == 1) return [[a, b]];
a.push([a[a.length - 1][1], b]);
return a
})
)
与 Array#reduce
初始值为空数组的方法
console.log(
[1, 2, 3, 4, 5].reduce(function(a, b, i, arr) {
arr[i + 1] !== undefined && a.push([b, arr[i + 1]])
return a
}, [])
)
关于javascript - 按顺序配对数组中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37818594/