如何解决javascript将对象分组为n组
我生成了以下 json,我必须确保将子数组中的对象分组,指定必须形成多少个元素。
在下面的示例中,我有五个元素,我想将它们分成三个一组,这意味着有两组,其中最后一组仅由两个对象组成。
杰森:
[
{
"hue": "lightBlue","shade": "300","value": "#4fc3f7"
},{
"hue": "cyan","value": "#4dd0e1"
},{
"hue": "lightBlue","shade": "100","value": "#b3e5fc"
},{
"hue": "blue","shade": "700","value": "#1976d2"
},"value": "#b2ebf2"
}
]
json 结果:
[
[
{
"hue": "lightBlue",{
"hue": "cyan",{
"hue": "lightBlue","value": "#b3e5fc"
}
],[
{
"hue": "blue","value": "#b2ebf2"
}
]
]
我设法做到了,我想知道是否有一种方法可以将它写得比我以前写的更紧凑。
并使用返回结果的 array.groupBy(3)
,而不是像我的函数那样使用 groupBy(array,3)
。
你能帮我一把吗?
let array = [
{
"hue": "lightBlue","value": "#b2ebf2"
}
]
var groupBy = (xs,number,arr = []) => xs.reduce((rv,x,key) => {
if(arr.length < number) arr.push(x)
if(arr.length === number || key === xs.length - 1) {
rv.push(arr)
arr = []
}
return rv;
},[]);
console.log(groupBy(array,3));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。