javascript – Array.map要将值映射为无

前端之家收集整理的这篇文章主要介绍了javascript – Array.map要将值映射为无前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有数组:[1,2,3,4,5,6,7]

我想实现:[[1,2],[3,4],[5,6],[7]]

我在想Array.map,但它似乎无法映射到一个元素什么?

我有(使用Underscorejs):

arr.map(function(el,idx,arr) {
  if (idx%2 != 0) return null;
  if (idx == arr.length-1) return [el];
  return [el,arr[idx+1]]
}).compact();

这还是有点丑陋.如何实现转换(没有显式循环)?

解决方法

使用模运算符减少数组:
function chunk(arr,n) {
  return arr.reduce(function (p,c,i) {
    if (i % n === 0) p.push([]);
    p[p.length - 1].push(c);
    return p;
  },[]);
}

chunk(arr,2); // [[1,[7]]

DEMO

原文链接:https://www.f2er.com/js/154728.html

猜你在找的JavaScript相关文章