如何将对象的元素推入另一个对象?

时间:2015-04-29 16:33:05

标签: javascript object push

与数组类似,我们可以使用数组.push(item)添加新元素。如何对objects做同样的事情?它可以在对象内部完成吗?喜欢:

var myObject={apple: "a", orange: "o"};
var anothObject = {lemon: "l", myObject};

5 个答案:

答案 0 :(得分:4)

您可以像这样添加一些对象的属性:

obj = {a : "1", b : "2"};

myObj = {c: "3", d : "4"};
myObj.a = obj.a;
myObj.b = obj.b;

<强>更新

在这种情况下,只需这样做:

for(var prop in obj) myObj[prop] = obj[prop];

要过滤掉循环体内不需要的属性,您也可以这样做:

for (var prop in obj) {
    if (obj.hasOwnProperty(prop)) {
        myObj[prop] = obj[prop];
    }
}

答案 1 :(得分:2)

要将一个对象的所有元素复制到另一个对象,请使用Object.assign

var myObject = { apple: "a", orange: "o" };
var anothObject = Object.assign( { lemon: "l" }, myObject );

或者,使用spread ... operator更优雅的ES6风格:

var myObject = { apple: "a", orange: "o" };
var anothObject = { lemon: "l", ...myObject };

但是请注意,虽然我写这篇文章,但仍处于提案阶段,虽然支持非常普遍(它可以在我的浏览器中使用)。

答案 2 :(得分:1)

您可以使用jQuery的扩展函数:http://api.jquery.com/jquery.extend/

var object1 = {
  apple: 0,
  banana: { weight: 52, price: 100 },
  cherry: 97
};
var object2 = {
  banana: { price: 200 },
  durian: 100
};

// Merge object2 into object1
$.extend( object1, object2 );

答案 3 :(得分:0)

var myObject={apple: "a", orange: "o"};
myObject.lemon = 1; // myObject is now {apple: "a", orange: "o", lemon: 1}

答案 4 :(得分:0)

var addToObject = function (obj, key, value, index) {

// Create a temp object and index variable
var temp = {};
var i = 0;

// Loop through the original object
for (var prop in obj) {
    if (obj.hasOwnProperty(prop)) {

        // If the indexes match, add the new item
        if (i === index && key && value) {
            temp[key] = value;
        }

        // Add the current item in the loop to the temp obj
        temp[prop] = obj[prop];

        // Increase the count
        i++;

    }
}

// If no index, add to the end
if (!index && key && value) {
    temp[key] = value;
}

return temp;

};