猿问

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

我想编辑我的代码以将 {} 新对象添加到按 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 。谢谢 ..


慕斯709654
浏览 169回答 2
2回答

当年话下

我终于做到了,答案是: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);

慕妹3242003

您可以简单地使用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);
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答