与数组类似,我们可以使用数组.push(item)
添加新元素。如何对objects
做同样的事情?它可以在对象内部完成吗?喜欢:
var myObject={apple: "a", orange: "o"};
var anothObject = {lemon: "l", myObject};
答案 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;
};