如何把对象数组进行切割,变成四个为一组的对象数组

一梦_浮生 / 2024-09-25 / 原文

 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 不会修改原数组,只会返回一个浅复制了原数组中的元素的一个新数组。