js将一个数组分成多个数组

JavaScript08

js将一个数组分成多个数组,第1张

1,将数组array分成长度为subGroupLength的小数组并返回新数组

<pre style="margin: 0pxpadding: 0pxwhite-space: pre-wrapoverflow-wrap: break-word">function group(array, subGroupLength) {

let index = 0

let newArray = []

while(index <array.length) {

newArray.push(array.slice(index, index += subGroupLength))

}

return newArray

}

2,例如:

var Array = [1,2,3,4,5,6,7,8,9,10,11,12]

var groupedArray = group(Array, 6)

得到的groupedArray 数组为:

groupedArray[[1,2,3,4,5,6],[7,8,9,10,11,12]]</pre>

用js的reduce方法,reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素,接受四个参数:初始值(或者上一次回调函数的返回值),当前元素值,当前索引,调用 reduce 的数组。

语法:

previousValue (上一次调用回调返回的值,或者是提供的初始值(initialValue))

currentValue (数组中当前被处理的元素)

index (当前元素在数组中的索引)

array (调用 reduce 的数组)

initialValue (作为第一次调用 callback 的第一个参数。)

使用方法

你是想把数组中,每个元素,按照元素的值,按照一定规则进行重新分组吧。比如,你的例子里,元素的值以"a"打头的,放一个数组,以"b"打头的放一个数组里,首先遍历数组,然后根据规则重新挑选元素,放入新数组中。

var a=[],b=[]

for(var i=0i<example.lengthi++){

if(example[i].substring(0,1)=="a"){

a.push(example[i])

break

}

if(example[i].substring(0,1)=="b"){

b.push(example[i])

break

}

}

也可以按照其他规则进行区分,看你的区分规则了。