将对象分成块 [英] Split object into chunks

查看:66
本文介绍了将对象分成块的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个对象:

var object = { '232510350': 672,
'232510352': 672,
'232510353': 672,
'232510356': 672,
'232510358': 672,
'232510359': 672,
'232510360': 672 }

我想将其拆分为给定大小的块,如下所示:

And I want to split it into chunks of a given size like this:

var chunks = [
{'232510350': 672,
'232510352': 672,
'232510353': 672},
{'232510356': 672,
'232510358': 672,
'232510359': 672},
{'232510360': 672}]

我有点卡在这里,因为我不能为此使用切片

I'm kinda stuck here since I can't use slice for this

这是我的做法,但是很丑。我只是想看看如何正确地做

Here's how I did it but it's ugly. I just wanted to see how to do it the right way

var temp = {};
var chunks = [];
var chunkSize = 3;
var amount = chunkSize;

for (var i = 0; i < Object.keys(object).length; i++) {
    if (i == chunkSize) {
        chunks.push(temp);
        chunkSize += amount;
        temp = {};
    }

    temp[ Object.keys(object)[i] ] = object[ Object.keys(object)[i] ];

    if (i == Object.keys(object).length - 1) {
        chunks.push(temp);
    }
}


推荐答案

所以,这里是:

var object = { '232510350': 672,
'232510352': 672,
'232510353': 672,
'232510356': 672,
'232510358': 672,
'232510359': 672,
'232510360': 672 }

var values = Object.values(object);
var final = [];
var counter = 0;
var portion = {};

for (var key in object) {
  if (counter !== 0 && counter % 3 === 0) {
    final.push(portion);
    portion = {};
  }
  portion[key] = values[counter];
  counter++
}
final.push(portion);

console.log(final)

这篇关于将对象分成块的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆