js 如何分割数组?

let arr=['aaa','bbb','ccc','ddd','eee','fff']

我有上述数据,怎么分割可以得到如下数组呢,请教!

arr1=['aaa','ddd']   arr2=['bbb','eee'],  arr3=['ccc','fff']
或
newarr=[['aaa','ddd'],['bbb','eee'],['ccc','fff']]
阅读 1.3k
3 个回答
function chunk(arr, size) {
  let chunks = [],  i = 0, len = arr.length;
  while (i < len) {
    chunks.push(arr.slice(i, (i += size)));
  }
  return chunks;
}
function splitArray(target) {
  const len = target.length;
  const m = len % 2 ? Math.floor(len / 2) + 1 : len / 2;
  const res = [];  
  let n = 0;
  while (n < m) {
    res.push([target[n], target[n + m] || ""]);
    n++;
  }
  return res;
}

const arr = ['aaa', 'bbb', 'ccc', 'ddd', 'eee', 'fff'];
const arr1 = ['aaa', 'bbb', 'ccc', 'ddd', 'eee', 'fff', 'ggg'];

console.log(splitArray(arr));
// [ [ 'aaa', 'ddd' ], [ 'bbb', 'eee' ], [ 'ccc', 'fff' ] ]

console.log(splitArray(arr1));
// [ [ 'aaa', 'eee' ], [ 'bbb', 'fff' ], [ 'ccc', 'ggg' ], [ 'ddd', '' ] ]
    let arr = ["aaa", "bbb", "ccc", "ddd", "eee", "fff"];

    function fn(data) {
        const before = data.slice(0, arr.length / 2);
        const after = data.slice(arr.length / 2);
        let list = [];
        before.forEach((item, index) => {
            list.push([item, after[index]]);
        });
        return list;
    }

    fn(arr)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题