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]}