Array · 将一个大数组分割成几个小数组

2,125 阅读1分钟

使用场景

轮播数据,每个轮播item又有多条数据,就要用到二维数组,但是给我们的却是一维数组,那就要转化成二维数组了。

代码:

for循环

      //array: 传入数组,size:每个小数据的长度
      splitGroup(array, size) {
        let newArray = []
        for (let i = 0; i < Math.ceil(array.length / size); i++) {
          let start = i * size
          let end = start + size
          newArray.push(array.slice(start, end))
        }
        return newArray
      },
  let newList  = splitGroup([1,2,3,4,5],3) // 得到:[[1,2,3],[4,5]]

递归

//array: 传入数组,size:每个小数据的长度
splitGroup(array, size) {
    let result = []
    let group = (arr) => {
      let list = arr.slice(0, size)
      let rest = arr.slice(size, arr.length)
      result.push(list)
      if (arr.length <= size) {
        return result
      } else {
        return group(rest)
      }
    }
    return group(array)
}