使用map-Javascript转换数组

使用map-Javascript转换数组,javascript,arrays,json,object,Javascript,Arrays,Json,Object,我有以下json对象: { contacts: [ { id: 52, gsm: '919191919191', firstName: 'Ganesh' }, { id: 51, gsm: '123456789', firstName: 'Mohamed' }, { id: 53, gsm: '987654321', firstName: 'Mohamed' } ], groups: { contactsCoun

我有以下json对象:

{ 
 contacts:
 [ { id: 52,
     gsm: '919191919191',
     firstName: 'Ganesh' },
   { id: 51,
     gsm: '123456789',
     firstName: 'Mohamed' },
   { id: 53,
     gsm: '987654321',
     firstName: 'Mohamed' } ],

 groups:
 { contactsCount: 1,
   id: 40,
   groupname: 'Angular' }      
}
我希望我的最终输出如下:

[ { groupId:40 , contactId:52 }; { groupId:40 , contactId:51 } ; { groupId:40 , contactId:53 } ]
如何使用map或任何JS方法。

一种方法是:

var data = {
    contacts: [{
            id: 52,
            gsm: '919191919191',
            firstName: 'Ganesh'
        },
        {
            id: 51,
            gsm: '123456789',
            firstName: 'Mohamed'
        },
        {
            id: 53,
            gsm: '987654321',
            firstName: 'Mohamed'
        }
    ],

    groups: {
        contactsCount: 1,
        id: 40,
        groupname: 'Angular'
    }
};

function getMap(data) {
    return data.contacts.map((contact) => ({
        contactId: contact.id,
        groupId: data.groups.id
    }))
}
getMap(data); //[{"contactId":52,"groupId":40},{"contactId":51,"groupId":40},{"contactId":53,"groupId":40}]
一种方法是:

var data = {
    contacts: [{
            id: 52,
            gsm: '919191919191',
            firstName: 'Ganesh'
        },
        {
            id: 51,
            gsm: '123456789',
            firstName: 'Mohamed'
        },
        {
            id: 53,
            gsm: '987654321',
            firstName: 'Mohamed'
        }
    ],

    groups: {
        contactsCount: 1,
        id: 40,
        groupname: 'Angular'
    }
};

function getMap(data) {
    return data.contacts.map((contact) => ({
        contactId: contact.id,
        groupId: data.groups.id
    }))
}
getMap(data); //[{"contactId":52,"groupId":40},{"contactId":51,"groupId":40},{"contactId":53,"groupId":40}]
你可以使用地图

var触点=[{ 身份证号码:52, gsm:'9191', 名字:“甘尼什” }, { id:51, gsm:'123456789', 名字:“穆罕默德” }, { id:53, gsm:'987654321', 名字:“穆罕默德” } ]; 变量组={ 联系人:1, 身份证号码:40, groupname:“Angular” }; console.logcontacts.map s=>Object.assign{},{contactId:s.id,groupId:groups.id} 你可以使用地图

var触点=[{ 身份证号码:52, gsm:'9191', 名字:“甘尼什” }, { id:51, gsm:'123456789', 名字:“穆罕默德” }, { id:53, gsm:'987654321', 名字:“穆罕默德” } ]; 变量组={ 联系人:1, 身份证号码:40, groupname:“Angular” }; console.logcontacts.map s=>Object.assign{},{contactId:s.id,groupId:groups.id} 您可以使用arraymap

var数据={contacts:[{id:52,gsm:'919191',firstName:'Ganesh'},{id:51,gsm:'123456789',firstName:'Mohamed'},{id:53,gsm:'987654321',firstName:'Mohamed'}],组:{contactscont:1,id:40,groupname:'Angular'}, 结果=data.contacts.map{id}=>{groupId:data.groups.id,contactId:id}; console.logresult 您可以使用arraymap

var数据={contacts:[{id:52,gsm:'919191',firstName:'Ganesh'},{id:51,gsm:'123456789',firstName:'Mohamed'},{id:53,gsm:'987654321',firstName:'Mohamed'}],组:{contactscont:1,id:40,groupname:'Angular'}, 结果=data.contacts.map{id}=>{groupId:data.groups.id,contactId:id};
console.logresult 晚会迟到了,但你来了:

变量数据={ 联络: [{id:52, gsm:'9191', 名字:'甘尼什'}, {id:51, gsm:'123456789', 名字:'穆罕默德'}, {id:53, gsm:'987654321', 名字:'Mohamed'}], 组: {联系人:1, 身份证号码:40, 组名:'Angular'} }; var newArray=[]; 对于var i=0;iconsole.logJSON.stringifynewArray 晚会迟到了,但你来了:

变量数据={ 联络: [{id:52, gsm:'9191', 名字:'甘尼什'}, {id:51, gsm:'123456789', 名字:'穆罕默德'}, {id:53, gsm:'987654321', 名字:'Mohamed'}], 组: {联系人:1, 身份证号码:40, 组名:'Angular'} }; var newArray=[]; 对于var i=0;i
let obj = {
  contacts:
    [
      {
        id: 52,
        gsm: '919191919191',
        firstName: 'Ganesh'
      },
      {
        id: 51,
        gsm: '123456789',
        firstName: 'Mohamed'
      },
      {
        id: 53,
        gsm: '987654321',
        firstName: 'Mohamed'
      }
    ],
  groups: {
    contactsCount: 1,
    id: 40,
    groupname: 'Angular'
  }
}

let result = obj.contacts.map(contact => {
  return {groupId: obj.groups.id, contactId: contact.id}
})

console.log(result)
这是我的回答

let obj = {
  contacts:
    [
      {
        id: 52,
        gsm: '919191919191',
        firstName: 'Ganesh'
      },
      {
        id: 51,
        gsm: '123456789',
        firstName: 'Mohamed'
      },
      {
        id: 53,
        gsm: '987654321',
        firstName: 'Mohamed'
      }
    ],
  groups: {
    contactsCount: 1,
    id: 40,
    groupname: 'Angular'
  }
}

let result = obj.contacts.map(contact => {
  return {groupId: obj.groups.id, contactId: contact.id}
})

console.log(result)

您正在寻找具有联系人的组的笛卡尔乘积?我希望groups key中的groupId和contacts key中的contactId。是否确实要将它们用分隔符分隔;签名,不是:?{groupId:40;contactId:52}或{groupId:40:contactId:52}请参阅我的更新问题:这是笛卡尔积还是有一些id将联系人映射到组?您正在查找具有联系人的组的笛卡尔积?我希望组键中有groupId,联系人键中有contactId。是否确实希望它们之间用分隔;签名,不是:?{groupId:40;contactId:52}或{groupId:40:contactId:52}查看我更新的问题:这是笛卡尔积还是有一些id将联系人映射到组?查看我正在讨论的json对象,一个对象中的联系人和组。您可以在那里应用相同的逻辑。只是你访问对象的方式会改变。contacts.map将变为obj.contacts.map,groups.id将变为obj.groups.id。请参阅我的json对象,一个对象中的联系人和组。您可以在其中应用相同的逻辑。只是你访问对象的方式会改变。contacts.map将变为obj.contacts.map,groups.id将变为obj.groups.id。