const cardList = [{a:1,b:2,c:3},{a:1,b:2,c:3},{a:1,b:2,c:3},{a:1,b:2,c:3},{a:1,b:2,c:3},{a:1,b:2,c:3},{a:1,b:2,c:3},{a:1,b:2,c:3},{a:1,b:2,c:3}] let newList = []; for (var i = 0; i < cardList.length; i += 4) { newList.push(cardList.slice(i, i + 4)); } console.log(newList)
第二种
const arr = [{a:1,b:2,c:3},{a:1,b:2,c:3},{a:1,b:2,c:3},{a:1,b:2,c:3},{a:1,b:2,c:3},{a:1,b:2,c:3},{a:1,b:2,c:3},{a:1,b:2,c:3},{a:1,b:2,c:3}] const len = arr.length let result = [] const sliceNum = 4 for(let i = 0; i < len / sliceNum; i++){ result.push(arr.slice(i * sliceNum, (i+1) * sliceNum)) } for(let j = 0; j < (sliceNum - len % sliceNum); j++) { result[result.length - 1].push({}) } console.log(result)
Array slice() 方法
返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。slice
不会修改原数组,只会返回一个浅复制了原数组中的元素的一个新数组。