Я хочу расширить объект добавить еще один атрибут:Подчеркивание расширить объект
var days = [{day:'monday'},{day:'tuesday'}];
_.extend(days,{day:'monday'},{name:'Peter'});
// DAYS NOT EXTENDED
console.log(days);
// I WANT TO HAVE AS RESULT
// [{day:'monday',name:'Peter'},{day:'tuesday'}]
Цель состоит в том, чтобы иметь возможность обновлять или вставки в зависимости от критериев, я хочу найти «понедельник» и расширить " вторником»и расширить и так далее ... если я найти„“понедельник снова я хочу, чтобы удалить имя атрибута и заменить его новым критериям
============
ОБНОВЛЕНИЕ
Это решение от T.J Crowder, он обновляет объект, если я поиск с новыми критериями, но в тот же день:
var days = [{day:'monday'},{day:'tuesday'}];
var day = _.find(days, function(day) {
return day.day == 'monday';
});
if (day) {
_.extend(day,{day:'monday'},{name:'Peter'});
}
console.log(days);
Этот выход (Здесь я поиск «понедельник» и вставить Питер, я сделать то же самое для Рональда и я поиск «понедельник» снова и обновить имя с Sandy): обновление кода, но вставить также новый день «понедельник» на последнем из объекта
///// THE initial object
({
'day':'Monday'
},{
'day':'Tuesday'
})
///// search 'Monday' and add {name : 'Peter'}
({
'name':'Peter',
'day':'Monday'
},{
'day':'Tuesday'
},{
'day':'Monday'
})
//// search 'Monday' again and update with {name : 'Sandy'}
({
'name':'Sandy',
'day':'Monday'
},{
'day':'Tuesday'
},{
'day':'Monday'
},{
'day':'Monday'
})
Так что мой вопрос, почему он проходит {день: «Понедельник»} для каждого обновления?
Спасибо
здесь у вас есть массив объектов, так что если вам нужно изменить конкретный объект, Вам нужно найти его с помощью findWhere и заменить его –
Ваш ожидается формат недействителен. Вам не хватает 'key' для' {name: 'Peter'} ' – Rajesh
Эй, спасибо за помощь, Ryad.iv не могли бы вы привести мне пример, пожалуйста? – user44321