Я ищу лучший способ "добавить" несколько объектов JavaScript (ассоциативные массивы).
Например, данный:
a = { "one" : 1, "two" : 2 };
b = { "three" : 3 };
c = { "four" : 4, "five" : 5 };
что является лучшим способом вычислить:
{ "one" : 1, "two" : 2, "three" : 3, "four" : 4, "five" : 5 }
Вы можете использовать jquery $. extend
следующим образом:
let a = {"one ": 1," два ": 2}, b = {" три ": 3}, c = {" четыре ": 4," пять ": 5}; let d = $ .extend ({}, a, b, c) console.log (d)
Это должно сработать:
function collect () {var ret = {}; var len = arguments.length; for (var i = 0; i
Вывод:
{
"one": 1,
"two": 2,
"three": 3,
"four": 4,
"five": 5
}
function Collect(a, b, c) {
for (property in b)
a[property] = b[property];
for (property in c)
a[property] = c[property];
return a;
}
Примечание: существующие свойства в предыдущих объектах будут перезаписаны.
function collect(a, b, c){
var d = {};
for(p in a){
d[p] = a[p];
}
for(p in b){
d[p] = b[p];
}
for(p in c){
d[p] = c[p];
}
return d;
}
Почему функция должна быть ограничена 3 аргументами? Также проверьте hasOwnProperty
.
function Collect() {
var o={};
for(var i=0;i<arguments.length;i++) {
var arg=arguments[i];
if(typeof arg != "object") continue;
for(var p in arg) {
if(arg.hasOwnProperty(p)) o[p] = arg[p];
}
}
return o;
}