Показать сообщение отдельно
  #11 (permalink)  
Старый 29.12.2014, 23:58
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

ssadfaf,
Тут есть ньюанс. Я писал наспех, не думал, что вам это понадобиться. Данная версия extend некорректно работает со значениями false, и приводимыми к false
extend=function(src, trg){for(var i in src) if(!trg[i]) trg[i]=src[i]}

pattern={foo: 1, bar: 2, baz: 3}
dbs={
  list: [
     {foo: 0},
     {foo: 100, bar: false}
  ]
}
 
for(var i=0; i<dbs.list.length; i++){
   extend(pattern, dbs.list[i])
}
 
for(var i=0; i<dbs.list.length; i++){
   console.log(dbs.list[i])
}
//  { foo: 1, bar: 2, baz: 3 }
//  { foo: 100, bar: 2, baz: 3 }

используйте вот эту версию
extend=function(src, trg){for(var i in src) if(!(i in trg)) trg[i]=src[i]}
Ответить с цитированием