Javascript 如何在下划线.js中创建嵌套的分组依据

Javascript 如何在下划线.js中创建嵌套的分组依据,javascript,arrays,underscore.js,Javascript,Arrays,Underscore.js,我有一个数组,需要根据大小对它们进行分组 [ {"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}

我有一个数组,需要根据大小对它们进行分组

[
    {"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的行分组

[
    {"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}
]

提前感谢。

使用纯JS,您只需使用

让arr=[{“col”:4,“row”:1,“size_x”:1,“size_y”:4},{“col”: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,“size_y”:5,“size_x”:4,“size_y”:1}]
让op=arr.reduce((out,inp)=>{
如果(inp.row>4){
如果(输出['>4']){
输出['>4'].推送(输入)
}否则{
输出['>4']=[inp]
}
}否则{

如果(out['使用纯JS,您只需使用

让arr=[{“col”:4,“row”:1,“size_x”:1,“size_y”:4},{“col”: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,“size_y”:5,“size_x”:4,“size_y”:1}]
让op=arr.reduce((out,inp)=>{
如果(inp.row>4){
如果(输出['>4']){
输出['>4'].推送(输入)
}否则{
输出['>4']=[inp]
}
}否则{

如果(out)['您可以使用生成器函数和
.splice()

让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}
];
函数*除以(a){
const[copy,[{size_y}]=copy]=[[…a]];
而(拷贝长度)产生拷贝拼接(0,大小y);
}
设res=[…除以(arr)];

console.log(res)
您可以使用生成器函数和
.splice()

让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}
];
函数*除以(a){
const[copy,[{size_y}]=copy]=[[…a]];
而(拷贝长度)产生拷贝拼接(0,大小y);
}
设res=[…除以(arr)];

console.log(res)
那么您想从底部获取顶部数据结构?底部是嵌套数组?下划线是必须的吗?不,我需要从顶部数据结构获取底部数据结构。建议使用下划线,但不是必需的。更新问题的数据结构基于什么?数组中的所有对象都有
“size\u y”
属性,应计算哪个
“size\u y”
值?最初,应检查第一项。接下来,如果“size\u y”大于一,则应创建另一个数组,如示例所示。在第二步中,如果“size\u y”为2且为“row”则嵌套数组应包含第2,3行的元素only@SravanSriram最初,应检查第一个项目。“确定”。接下来,如果“size_y”大于一,则应创建另一个数组,如示例所示。“与第一个元素相邻的元素具有
“size_y”
小于第一个元素的值,该值未反映在更新问题的结果数据结构中,对吗?。因此,您希望从底部获取顶部数据结构?底部数据结构是嵌套数组?下划线是必须的吗?否,从顶部数据结构我需要获取底部数据结构。建议使用下划线,但不是必需的。Wh更新问题的数据结构基于?数组中的所有对象都有一个
“size\u y”
属性,应该评估哪个
“size\u y”
值?首先,应该检查第一项。接下来,如果“size\u y”是多个,则应创建另一个数组,如示例所示。在第二步中,如果“size_y”为2,“row”为2,则嵌套数组应包含第2,3行的元素only@SravanSriram“首先,应检查第一项。”确定。“然后,如果“尺寸”为y“大于一个,则应创建另一个数组,如示例所示。”与第一个元素相邻的元素的大小为
”"
值小于第一个元素,该值未反映在更新问题的结果数据结构中,对吗?.size\y这将不总是相同的。@sravansram生成器函数接受
n
作为第二个参数,其中
n
是正整数,这将不总是相同的。@sravansramrator函数接受
n
作为第二个参数,其中
n
是一个正整数,这并不总是相同