简体   繁体   English

如何在 JavaScript 中合并两个不同的 object 数组? 检查以下示例

[英]How to merge two different array of object in JavaScript? Check below example

Input Arrays:输入 Arrays:

var array1 = [
  {
    PersonalID: '11',
    qusetionNumber: '1',
    value: 'Something'
  },
  {
    PersonalID: '12',
    qusetionNumber: '2',
    value: 'whatever'
  },
];

var array2 = [
  {
    uniqueId: '111'
  },
  {
    uniqueId: '222'
  },
];

Result:结果:

var results = [
  {
    PersonalID: '11',
    qusetionNumber: '1',
    value: 'Something',
    uniqueId: '111'
  },
  {
    PersonalID: '12',
    qusetionNumber: '2',
    value: 'whatever',
    uniqueId: '222'
  },
];

There are a few ways to do this, perhaps this is acceptable?有几种方法可以做到这一点,也许这是可以接受的? Simply looping over the first array and using the index to select the correct object from the second array.简单地循环第一个数组并使用 select 的索引从第二个数组中正确的 object 。

 var array1 = [ { PersonalID: '11', qusetionNumber: '1', value: 'Something' }, { PersonalID: '12', qusetionNumber: '2', value: 'whatever' }, ]; var array2 = [ { uniqueId: '111' }, { uniqueId: '222' }, ]; var result = []; array1.forEach((itm, idx, _) => { result.push({...itm, ...array2[idx] }); }); console.log(result)

You can use Array.map() along with spread syntax (...) to merge the values from the two arrays.您可以使用Array.map()spread syntax (...)来合并来自两个 arrays 的值。

 const array1 = [ { PersonalID: '11', qusetionNumber: '1', value: 'Something' }, { PersonalID: '12', qusetionNumber: '2', value: 'whatever' }, ]; const array2 = [ { uniqueId: '111' }, { uniqueId: '222' }, ]; const result = array1.map((el, idx) => ({...el, ...array2[idx]})); console.log('Result:', result)
 .as-console-wrapper { max-height: 100%;important; }

 var array1 = [ { PersonalID: '11', qusetionNumber: '1', value: 'Something' }, { PersonalID: '12', qusetionNumber: '2', value: 'whatever' }, ]; var array2 = [ { uniqueId: '111' }, { uniqueId: '222' }, ]; // if you don't want array1 to be modified use instead // Array.from(array1).map(function(e,i){return Object.assign(e,array2[i])}) array1.map(function(e,i){return Object.assign(e,array2[i])}) console.log(array1)

I can also use Object.assign我也可以使用Object.assign

 var array1 = [{ PersonalID: '11', qusetionNumber: '1', value: 'Something' }, { PersonalID: '12', qusetionNumber: '2', value: 'whatever' }, ]; var array2 = [{ uniqueId: '111' }, { uniqueId: '222' }, ]; let myArr = [] for(let i = 0; i<array1.length; i++){ myArr.push(Object.assign(array1[i], array2[i])) } console.log(myArr)

 var array1 = [ { PersonalID: '11', qusetionNumber: '1', value: 'Something' }, { PersonalID: '12', qusetionNumber: '2', value: 'whatever' }, ]; var array2 = [ { uniqueId: '111' }, { uniqueId: '222' }, ]; const fun =(ar, ar2)=>{ for(let [k, v] of Object.entries(ar2)){ for(x in v){ ar[k][x] = v[x] } } return ar } console.log(fun(array1, array2))

You can also use the.map() like this你也可以像这样使用.map()

 var array1 = [ { PersonalID: '11', qusetionNumber: '1', value: 'Something' }, { PersonalID: '12', qusetionNumber: '2', value: 'whatever' }, ]; var array2 = [ { uniqueId: '111' }, { uniqueId: '222' }, ]; var result = array1.map((element, index) => ({ PersonalID:element.PersonalID, qusetionNumber:element.qusetionNumber, value:element.value, uniqueId:array2[index].uniqueId })); console.log(result);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM