Обновление свойства объекта javascript?

У меня есть структура, подобная следующей:

skillet.person = {
  name: {
    first: '',
    last: ''
  }, 
  age: {
    current: '' 
  },
  birthday: {
    day: '',
    month: '',
    year: ''
  }
}

Мне было интересно, как я буду обновлять эти значения? то есть, хотя верно следующее:

skillet.person.name.push({ first: 'blah', last: 'ha'});

но это неправильно? Как я могу это исправить?

Ответ 1

Если вы хотите смешать объект с другим, вы можете использовать функцию расширенного расширения jQuery. "Глубокий" означает, что он не перезаписывает name новым объектом, а скорее перезаписывает свойства внутри такого объекта.

$.extend(true, skillet.person, {
  name: {
    first: 'updated'
  },
  birthday: {
    day: 'updated',
    year: 'updated'
  }
});

Теперь skillet.person обновляет соответствующие свойства, а остальные свойства нетронуты.

Ответ 2

skillet.person.name.first = "blah"
skillet.person.name.last = "ha"

или

skillet.person.name = {first : "blah", last : "ha"}

Ответ 3

push - это метод Array, который добавляет новый элемент в массив.

Если вы хотите заменить значение, то:

skillet.person.name = { … };

Если вы хотите сохранить несколько (полных) имен в объекте, вам понадобится свойство для хранения массива объектов вместо одного объекта.