如何合并/合并两个javascript obj属性的值

时间:2019-04-24 03:23:24

标签: javascript

我有以下对象数组:

  [
    {
      patientId: 587278335,
      firstAppDate: '2012-04-21',
      lastAppDate: '2017-04-17',
      referral: 'Y',
    },
    {obj2}, {obj3}
  ];

我正在尝试将首个约会和最后一个约会的日期合并到单个obj或数组中,有没有简单的方法?

更新:

所需结果->

['2012-04-21', '2017-04-17' ]

4 个答案:

答案 0 :(得分:2)

您可以使用Array.map()这种方式来获取仅具有所需属性的新对象。

let data = [
  {patientId:587278335, firstAppDate:'2012-04-21', lastAppDate:'2017-04-17', referral:'Y'},
  {patientId:587278336, firstAppDate:'2012-04-19', lastAppDate:'2017-07-27', referral:'X'},
  {patientId:587278337, firstAppDate:'2014-01-11', lastAppDate:'2018-03-22', referral:'Z'}
];

let res = data.map(({firstAppDate, lastAppDate}) => ({firstAppDate, lastAppDate}));
console.log(res);
.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}

如果您需要arrays而不是objects,请用下一个替换map()表达式:

let res = data.map(({firstAppDate, lastAppDate}) => [firstAppDate, lastAppDate]);

答案 1 :(得分:1)

const input = [{
  patientId: 587278335,
  firstAppDate: '2012-04-21',
  lastAppDate: '2017-04-17',
  referral: 'Y',
}];

const result = input.reduce((acc, curr) => {
  acc.push(curr.firstAppDate);
  acc.push(curr.lastAppDate);
  return acc;
}, []);

console.log(result);

答案 2 :(得分:0)

你好伴侣希望这对你有帮助

如果要合并两个对象,

var o1 = { a: 1 };
var o2 = { b: 2 };
var o3 = { c: 3 };

var obj = Object.assign(o1, o2, o3);
console.log(obj); // { a: 1, b: 2, c: 3 }
console.log(o1);  // { a: 1, b: 2, c: 3 }, target object itself is changed.

如果您愿意合并两个对象属性,则

    let obj = {
      patientId: 587278335,
      firstAppDate: '2012-04-21',
      lastAppDate: '2017-04-17',
      referral: 'Y',
    },

let resultDesired = [obj.firstAppDate, obj.lastAppDate]

答案 3 :(得分:0)

如果我正确理解了您的要求,则以下代码可能会有所帮助。 您的问题问题看起来像这样:

 const obj2 = {};
 const obj3 = {};
 const myObjectArray = [
    {
      patientId: 587278335,
      firstAppDate: '2012-04-21',
      lastAppDate: '2017-04-17',
      referral: 'Y',
    },
    obj2, obj3
  ];

这是您问题的解决方案:

 const {firstAppDate,lastAppDate} = myObjectArray[0];

 const newArray = [];
 newArray.push(firstAppDate,lastAppDate);
 console.log(newArray);

说明:

我正在使用ES6解构概念从给定数组的第一个Object获取值(firstAppDate和lastAppDate)。

然后我以名称newArray创建一个新的空数组,并在其中使用值

希望这会有所帮助。 谢谢:)