javascript - 按顺序配对数组中的项目

标签 javascript

给定一个数组,[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/

相关文章:

javascript - 通过javascript全屏

javascript - 在 var 名称中使用 FOR 的 i = x

javascript - 在 HTML 中获取 Flex Tile Container 的功能

javascript - 包含单独的 HTML,其中包含 <head> 中的代码

javascript - 在没有 disconnectedCallback 的情况下将元素从 light DOM 移动到 ShadowDOM

javascript - 我导出的 Excel 文件中出现错误

javascript - jQuery 从我的 Web 文件夹中的文本文件读取并附加到 div

javascript - $http服务从服务器下载json文件时抛出异常

javascript - 搜索 slider 既不移动也不更新搜索

javascript - jQuery datepicker future 一天的值