Javascript 如何根据不同变量中的属性值对JSON数据进行分组?

Javascript 如何根据不同变量中的属性值对JSON数据进行分组?,javascript,jquery,Javascript,Jquery,我想以颜色为例对JSON数据进行分组: 蓝色颜色将收集在变量“a” 绿色颜色将收集在变量“b” 红色颜色将收集在变量“c” 我该怎么做,我的JSON数据在这里: var数据=[{ “名称”:“2”, “编号”:“222”, “天”:20, “颜色”:“红色” }, { “名称”:“3”, “编号”:“333”, “天”:19, “颜色”:“绿色” }, { “名称”:“5”, “编号”:“333”, “天”:19, “颜色”:“蓝色” }]; console.log(data.red

我想以颜色为例对JSON数据进行分组:

  • 蓝色
    颜色将收集在变量
    “a”
  • 绿色
    颜色将收集在变量
    “b”
  • 红色
    颜色将收集在变量
    “c”
我该怎么做,我的JSON数据在这里:

var数据=[{
“名称”:“2”,
“编号”:“222”,
“天”:20,
“颜色”:“红色”
},  
{
“名称”:“3”,
“编号”:“333”,
“天”:19,
“颜色”:“绿色”
}, 
{
“名称”:“5”,
“编号”:“333”,
“天”:19,
“颜色”:“蓝色”
}];
console.log(data.reduce(函数)(结果,当前){
结果[current.color]=结果[current.color]| |[];
结果[current.color]。推送(current);
返回结果;

}, {}));我认为在reduce中,必须按颜色对项进行分组,然后设置变量a、b、c:

const reducedData = data.reduce((acc, rec) => {
  if (acc.hasOwnProperty(rec.color)){
    acc[rec.color].push(rec)
  }
  else {
    acc = {...acc, [rec.color]: [rec]}
  }
  return {...acc}
},{})

const a = reducedData.blue
const b = reducedData.green
const c = reducedData.red

请参阅操场上的完整示例:

解释您期望的结果,并向我们展示您的尝试。请阅读。你需要表现出更多的努力。研究,去读一些东西,尝试一些东西。经验法则:如果你的问题归结为一个简单的“我如何做dat”,那么它首先可能并不真正属于这里。@User156771,添加了代码片段并更新了问题演示文稿,你必须学习。