如何在UnderScore.js中创建嵌套组 [英] How to Create Nested Group By in UnderScore.js
本文介绍了如何在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屋!
查看全文