Как объединить неправильный объект - PullRequest
0 голосов
/ 27 декабря 2018

Я хочу объединить 2 объекта.

Один объект является формой по умолчанию.

let data = {
  weight: '',
  DOB: '',
  gender: '',
}

Другой неправильный, как показано ниже

let temp1 = {
   weight: '19.2',
}

let temp2 = {
   DOB: '1992-11',
}

let temp3 = {
   DOB: '1992-11',
   gender: 'Male',
}

let temp4 = undefined;

Если я объединяюdata и temp1, результат должен быть

let data = {
  weight: '19.2',
  DOB: '',
  gender: ''
}

Если я объединю data и temp3, результат должен быть

let data = {
  weight: '',
  DOB: '1992-11',
  gender: 'Male',
}

Если я объединю data и temp4, результат должен быть

let data = {
  weight: '',
  DOB: '',
  gender: ''
}

Дайте мне несколько советов для достижения этого.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 27 декабря 2018

с jQuery вы можете использовать $.extend()

let data = {
  weight: '',
  DOB: '',
  gender: '',
}
let temp1 = {
   weight: '19.2',
}

console.log($.extend(data,temp1))
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

ИЛИ используйте оператор расширения JavaScript ... как показано ниже

let data = {
  weight: '',
  DOB: '',
  gender: '',
}

let temp3 = {
   DOB: '1992-11',
   gender: 'Male',
}

data={...data,...temp3}
console.log(data)

Если ключи совпадают, то используется значение из самого правого объекта

0 голосов
/ 27 декабря 2018

Вы можете использовать Object.assign():

let data = {
  weight: '',
  DOB: '',
  gender: '',
}


let temp3 = {
   DOB: '1992-11',
   gender: 'Male',
}

data = Object.assign(data, temp3);

или, если вы не хотите, чтобы объект данных изменялся:

let data2 = Object.assign({}, data, temp3);

Можно также использовать оператор распространения, которыйв основном то же самое, только исходный объект данных не изменяется:

data = { ...data, ...temp3 };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...