如何在UnderScore.js中创建嵌套组 [英] How to Create Nested Group By in UnderScore.js

查看:56
本文介绍了如何在UnderScore.js中创建嵌套组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个数组我需要根据size_y对它们进行分组;

I have an array I need to group them based on size_y;

[
    {"col":4,"row":1,"size_x":1,"size_y":4}, 
    {"col":2,"row":2,"size_x":1,"size_y":2}, 
    {"col":1,"row":1,"size_x":3,"size_y":1},
    {"col":1,"row":4,"size_x":3,"size_y":1}, 
    {"col":1,"row":5,"size_x":4,"size_y":1}
]

现在,如果size_y为4,我想将所有行分组为小于或等于4.

Now, if size_y is 4 I want to group all the rows less than or equal to 4.

[
    {"col":4,"row":1,"size_x":1,"size_y":4}, 
    {"col":2,"row":2,"size_x":1,"size_y":2}, 
    {"col":1,"row":1,"size_x":3,"size_y":1},
    {"col":1,"row":4,"size_x":3,"size_y":1},
],
[
    {"col":1,"row":5,"size_x":4,"size_y":1}
]

提前感谢。

推荐答案

您可以使用生成器功能和 .splice()

You can use a generator function and .splice()

let arr = [
    {"col":4,"row":1,"size_x":1,"size_y":4}, 
    {"col":2,"row":2,"size_x":1,"size_y":2}, 
    {"col":1,"row":1,"size_x":3,"size_y":1},
    {"col":1,"row":4,"size_x":3,"size_y":1}, 
    {"col":1,"row":5,"size_x":4,"size_y":1}
];

function* divideBy(a) {
  const [copy, [{size_y}] = copy] = [[...a]];
  while (copy.length) yield copy.splice(0, size_y);
}

let res = [...divideBy(arr)];

console.log(res)

这篇关于如何在UnderScore.js中创建嵌套组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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