为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Helenr 2019-03-13 18:19:55
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}];如何让数组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,转换成4个一组,不足的用{}空对象补全?
查看完整描述

3 回答

?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

想要几个为一组就把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)


查看完整回答
反对 回复 2019-04-02
?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

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)


查看完整回答
反对 回复 2019-04-02
?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

你输出结果对象部分没有键名啊。


查看完整回答
反对 回复 2019-04-02
  • 3 回答
  • 0 关注
  • 484 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信