为了账号安全,请及时绑定邮箱和手机立即绑定

将 {} 中的新对象添加到数组

将 {} 中的新对象添加到数组

慕斯709654 2022-10-08 15:59:20
我想编辑我的代码以将 {} 新对象添加到按 id 分组的数组中,我的代码将对象添加到我的旧对象中:我的代码和结果是:result = {  "field": [{    "id": "11",    "name": "name",    "email": "email"  }, {    "id": "11",    "name": "name",    "email": "email"  }, {    "id": "1234",    "name": "name",    "email": "email"  }]}results = result.field;groups = {};for (var i in results) {  var groupName = results[i].id;  if (!groups[results[i].id]) {    groups[groupName] = [];  }  groups[groupName].push(results[i].name);  groups[groupName].push(results[i].email);}console.log(groups);我希望结果是这样的: {"1234": [        {"name" : "name",        "email":"email"},        {"name":"name",        "email":"email"}],     "11":[{"name":"name",        "email":"email"}]}** 我使用 wso2,所以我不能使用任何方法,例如: reduce 。谢谢 ..
查看完整描述

2 回答

?
当年话下

TA贡献1890条经验 获得超9个赞

我终于做到了,答案是:


result = {

  "field": [{

    "id": "11",

    "name": "asma",

    "email": "asma@hotmail"

  }, {

    "id": "11",

    "name": "jone",

    "email": "jone@hotmail"

  }, {

    "id": "1234",

    "name": "jak",

    "email": "jak@hotmail"

  }]

}

results = result.field;

groups = {};

for (var i in results) {

  var groupName = results[i].id;

  if (!groups[results[i].id]) {

    groups[groupName] = [];

  }

 groups[groupName].push({"name" :results[i].name,"email":results[i].email})

}

console.log(groups);


查看完整回答
反对 回复 2022-10-08
?
慕妹3242003

TA贡献1824条经验 获得超6个赞

您可以简单地使用reduce()方法:


var object = { "field": [  {"id":"11","name":"name","email":"email"},{"id":"11","name":"name","email":"email"},{"id":"1234","name":"name","email":"email"}]};


var result = object.field.reduce((acc, {id, ...rest})=>{

    acc[id] = acc[id] || [];

    acc[id].push({...rest});

    return acc;

},{});


console.log(result);


查看完整回答
反对 回复 2022-10-08
  • 2 回答
  • 0 关注
  • 168 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号