【问题标题】:Merge arrays of objects manteining all the properties合并包含所有属性的对象数组
【发布时间】:2018-06-02 03:46:35
【问题描述】:

我有 2 个对象数组,我想合并它们。

var fruits = [
    {name: 'pear', cultivar: '', color: 'yellowgreen', size: '6'},
    {name: 'apple', cultivar: 'Annurca', color: 'red', size: '5'},
    {name: 'apple', cultivar: 'fuji', color: 'red', size: '4'}
]; 

var quantity = [
    {name: 'pear', number: '15'},
    {name: 'apple', number: '50', scad: '2018'},
    {name: 'apple', number: '50'}
]; 

我想要的是:

var all = [
    {name: 'pear', cultivar: '', color: 'yellowgreen', size: '6', number: '15', scad: 'NaN'},
    {name: 'apple', cultivar: 'Annurca', color: 'red', size: '5', number: '50', scad: '2018'},
    {name: 'apple', cultivar: 'fuji', color: 'red', size: '4', number: '50', scad: 'NaN'}
]; 

每个元素都包含所有属性:namecultivarcolorsizenumberscad(如果属性不存在,则为 NaN)。

【问题讨论】:

标签: javascript


【解决方案1】:

只需.map 将数组放在一起:

var fruits = [
    {name: 'pear', cultivar: '', color: 'yellowgreen', size: '6'},
    {name: 'apple', cultivar: 'Annurca', color: 'red', size: '5'},
    {name: 'apple', cultivar: 'fuji', color: 'red', size: '4'}
]; 

var quantity = [
    {name: 'pear', number: '15'},
    {name: 'apple', number: '50', scad: '2018'},
    {name: 'apple', number: '50'}
];

const all = fruits.map((fruit, i) => (
  { ...fruit, scad: NaN, ...quantity[i] }
));
console.log(all);

【讨论】:

    猜你喜欢
    • 2019-07-23
    • 2013-07-31
    • 2017-01-16
    • 2015-03-27
    • 1970-01-01
    • 2020-08-03
    • 2020-04-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多