鍍金池/ 問答/HTML/ 如何把對象數(shù)組進行切割,變成四個為一組的對象數(shù)組

如何把對象數(shù)組進行切割,變成四個為一組的對象數(shù)組

eg:let 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}];
如何讓數(shù)組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},{},{},{}]}];
剛開始是9,轉(zhuǎn)換成4個一組,不足的用{}空對象補全?

回答
編輯回答
失魂人

你輸出結果對象部分沒有鍵名啊。

2018年4月30日 21:39
編輯回答
糖果果

想要幾個為一組就把sliceNum改為幾~~

    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)
2018年3月31日 08:28
編輯回答
孤客
let 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}];
var result = new Array()
for (var i = 0; i < arr.length; i += 4){
  var tmp = new Array()
  for (var j = 0; j < 4; j++){
    if ((i+j) >= arr.length) {
      tmp.push({})
      continue
    }
    tmp.push(arr[i+j])
  }
  result.push({tmp})
}
console.log(result)
2017年12月20日 00:41