Concat将数组的顺序2个元素作为新数组中的数组

时间:2016-11-05 22:04:34

标签: javascript arrays mapreduce

假设我们有一个数组[1,2,3,4,5,6],我想得到一个新数组[[1,2],[3,4],[5,6]]。我不想使用for循环。我想使用map-reduce或使用最佳实践解决它但我没有得到如何使用map-reduce。请帮忙。

4 个答案:

答案 0 :(得分:0)

您可以使用remainder operator let identifier: String! var destinationTest: HasContext! switch identifier { case "Add Exercise": destinationTest = segue.destination as! HasContext case "addExerciseInCollectionView": destinationTest = segue.destination as! HasContext default: break } destinationTest.context = self.context 进行检查。如果为零,则推送到最后插入的数组,否则将生成一个新数组。



%

var array = [1, 2, 3, 4, 5, 6],
    result = array.reduce(function (r, a, i) {
        i % 2 ? r[r.length - 1].push(a) : r.push([a]);
        return r;
    }, []);

console.log(result);




答案 1 :(得分:0)

您可以使用临时对象,但我不认为为此目的进行缩减。恕我直言,我使用for循环。

[1, 2, 3, 4, 5, 6].reduce(
  function(a,b) { 
    if(a.val) {
      a.arr.push([a.val, b]);
      a.val = false;
    } else {
      a.val = b;
    } return a; 
  }, {
    arr: [],
    val: false
  }
).arr

答案 2 :(得分:0)

您可以使用Array.of()Array.prototype.slice()

var arr = [1,2,3,4,5,6];
var res = Array.of(arr.slice(0,2), arr.slice(2,4), arr.slice(4));

答案 3 :(得分:0)

您可以尝试使用递归函数。它还考虑了具有奇数长度的数组的情况。



var a = [1, 2, 3, 4, 5, 6, 7];

function div(arr) {
  return arr.length <= 1 ? [arr] : [[arr[0], arr[1]]].concat(div(arr.slice(2)));
}

console.log(div(a));
&#13;
&#13;
&#13;