如何在Javascript中合并两个词典?

Ank*_*pta 32 javascript

var a = {};
a['fruit'] = "apple";

var b = {};
b['vegetable'] = "carrot";

var food = {};
Run Code Online (Sandbox Code Playgroud)

输出变量'food'必须包含两个键值对.

Nin*_*olz 43

你可以用Object.assign.

var a = { fruit: "apple" },
    b = { vegetable: "carrot" },
    food = Object.assign({}, a, b);

console.log(food);
Run Code Online (Sandbox Code Playgroud)

对于没有支持的浏览器Object.assign,您可以迭代属性并手动分配值.

var a = { fruit: "apple" },
    b = { vegetable: "carrot" },
    food = [a, b].reduce(function (r, o) {
        Object.keys(o).forEach(function (k) { r[k] = o[k]; });
        return r;
    }, {});

console.log(food);
Run Code Online (Sandbox Code Playgroud)


Roh*_*dal 16

方法:

1.使用JavaScript Object.assign()方法.

var a = {};
a['fruit'] = "apple";

var b = {};
b['vegetable'] = "carrot";

var food = Object.assign({}, a, b);

console.log(food);
Run Code Online (Sandbox Code Playgroud)

2.使用自定义功能.

var a = {};
a['fruit'] = "apple";

var b = {};
b['vegetable'] = "carrot";

function createObj(obj1, obj2){
    var food = {};
    for (var i in obj1) {
      food[i] = obj1[i];
    }
    for (var j in obj2) {
      food[j] = obj2[j];
    }
    return food;
};

var res = createObj(a, b);

console.log(res);
Run Code Online (Sandbox Code Playgroud)

3.使用ES6 Spread运算符.

let a = {};
a['fruit'] = "apple";

let b = {};
b['vegetable'] = "carrot";

let food = {...a,...b}

console.log(food)
Run Code Online (Sandbox Code Playgroud)

  • 似乎3现在是标准的js方式/sf/answers/11987951/ (5认同)

syn*_*t1c 5

您可以在es6中使用spread运算符,但是您需要使用babel来转换代码以使其对跨浏览器友好。

const a = {};
a['fruit'] = "apple";

const b = {};
b['vegetable'] = "carrot";

const food = { ...a, ...b }

console.log(food)
Run Code Online (Sandbox Code Playgroud)