javascript中是否有方便的功能,有或没有underscore.js,它会采用[a, b, c, d]
形式的列表并将其转换为[[a, b], [b, c], [c, d]]
形式的列表?
答案 0 :(得分:2)
var makePairs = function(arr) {
// we want to pair up every element with the next one
return arr.map(function(current, i, arr) {
// so return an array of the current element and the next
return [current, arr[i + 1]]
}).slice(0, -1)
// for every element except the last, since `arr[i + 1]` is `undefined`
}
var arr = [1, 2, 3, 4]
// you should never use `document.write`, except for in stack snippets
document.write(makePairs(arr).join("<br>"));
答案 1 :(得分:1)
答案 2 :(得分:0)
简而言之,没有。
但是,编写自己的函数真的很容易。这里有一个比royhowie提出的基于地图的解决方案更快(而且,我相信,更容易阅读/理解):
function pairNeighbors(arr) {
var newArray = [];
for (var i = 1; i < arr.length; i++) {
newArray.push([arr[i - 1], arr[i]]);
}
return newArray;
}
document.write(JSON.stringify(pairNeighbors([1, 2, 3, 4])));