Как связать свойства от нескольких объектов JavaScript

Я ищу лучший способ "добавить" несколько объектов JavaScript (ассоциативные массивы).

Например, данный:

a = { "one" : 1, "two" : 2 };
b = { "three" : 3 };
c = { "four" : 4, "five" : 5 };

что является лучшим способом вычислить:

{ "one" : 1, "two" : 2, "three" : 3, "four" : 4, "five" : 5 }
92
задан Erik Kaplun 12 February 2016 в 21:25
поделиться

5 ответов

Вы можете использовать jquery $. extend следующим образом:

 let a = {"one ": 1," два ": 2}, b = {" три ": 3}, c = {" четыре ": 4," пять ": 5}; let d = $ .extend ({}, a, b, c) console.log (d) 
  
34
ответ дан 24 November 2019 в 06:25
поделиться

Это должно сработать:

 function collect () {var ret = {}; var len = arguments.length; for (var i = 0; i 

Вывод:

{
  "one": 1,
  "two": 2,
  "three": 3,
  "four": 4,
  "five": 5
}
33
ответ дан 24 November 2019 в 06:25
поделиться
function Collect(a, b, c) {
    for (property in b)
        a[property] = b[property];

    for (property in c)
        a[property] = c[property];

    return a;
}

Примечание: существующие свойства в предыдущих объектах будут перезаписаны.

3
ответ дан 24 November 2019 в 06:25
поделиться
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;
}
-1
ответ дан 24 November 2019 в 06:25
поделиться

Почему функция должна быть ограничена 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;
}
4
ответ дан 24 November 2019 в 06:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: