Javascript将Object值插入另一个具有相同键的Object中

时间:2017-05-17 10:07:24

标签: javascript reactjs

我有点问题。我创建一个带有日期键的对象,我有一个带有日期和值的另一个对象。我想得到我的第二个Object的值,并推入我的第一个Object。谢谢你的回答。

我的对象( obj

2017-05-31 : null
2017-06-01 : null
2017-06-02 : null
2017-06-03 : null
2017-06-04 : null
2017-06-05 : null
2017-06-06 : null

我的对象有价值( getListDayInbound

2017-05-31 : // Data
2017-06-03 : // Data
2017-06-06 : // Data

我的输出

2017-05-31 : // Data
2017-06-01 : null
2017-06-02 : null
2017-06-03 : // Data
2017-06-04 : null
2017-06-05 : null
2017-06-06 : // Data

我的代码

var dateInbound  = '2017-06-03',
    getListDayInbound = response[dateOutbound].solutions[selectedOutbound].inbounds; // Object with values
const obj = {}; // New Object

function addDays(date, days) {
  var result = new Date(date);
  result.setDate(result.getDate() + days);
  result = moment(result).format('YYYY-MM-DD');
  return result;
}

function removeDays(date, days) {
  var result = new Date(date);
  result.setDate(result.getDate() - days);
  result = moment(result).format('YYYY-MM-DD');
  return result;
}

// Add -/+ 3 days into Key Object
for (var i = 1; i <= 3; i++) {
  obj[removeDays(dateInbound, i)] = null;
  obj[addDays(dateInbound, i)] = null;
}

obj[dateInbound] = null;

2 个答案:

答案 0 :(得分:1)

您可以使用Object.assign()

a = {
  '2017-05-31' : null,
  '2017-06-01' : null,
  '2017-06-02' : null,
  '2017-06-03' : null,
  '2017-06-04' : null,
  '2017-06-05' : null,
  '2017-06-06' : null
};

b = {
  '2017-05-31' : 'someData',
  '2017-06-03' : 'someData',
  '2017-06-06' : 'someData'
};

console.log(Object.assign(a, b))

答案 1 :(得分:0)

我认为,您可以直接使用Object.assign,它会用新值替换值。

查看doc了解详情。

检查此代码段:

let obj1 = {a:1, b:2, c:3, d:4}
let obj2 = {b:5, d:10}

obj1 = Object.assign({}, obj1, obj2);

console.log(obj1);