有人可以帮我追加另一个对象吗?例如,我有原始对象:
var object = {
{ product_code: '55993',
brand: 'Phillips66',
category: 'LUBES AND GREASES',
description: 'cuatro cinco seis',
price: '300.00',
quantity: '3'
}
}
我想追加:
{ product_code: '90210',
brand: 'Phillips66',
category: 'LUBES AND GREASES',
description: 'cuatro cinco seis',
price: '500.00',
quantity: '5'
}
最后,object
看起来像:
object = {
{ product_code: '55993',
brand: 'Phillips66',
category: 'LUBES AND GREASES',
description: 'cuatro cinco seis',
price: '300.00',
quantity: '3'
},
{ product_code: '90210',
brand: 'Phillips66',
category: 'LUBES AND GREASES',
description: 'cuatro cinco seis',
price: '500.00',
quantity: '5'
}
}
我该怎么做?
答案 0 :(得分:4)
您的对象变量应该是一个数组,而不是一个对象:
var object = [
{ product_code: '55993',
brand: 'Phillips66',
category: 'LUBES AND GREASES',
description: 'cuatro cinco seis',
price: '300.00',
quantity: '3'
}
]
然后你可以在其中添加其他对象:
object.push({ product_code: '90210',
brand: 'Phillips66',
category: 'LUBES AND GREASES',
description: 'cuatro cinco seis',
price: '500.00',
quantity: '5'
});
希望它有所帮助。
答案 1 :(得分:1)
您有几个选择:
定义一个属性名称,用于存储第二个对象,这不会为您提供类似于问题末尾显示的结构。
使用数组,它会给你一些非常类似于问题末尾的内容:
[
{ product_code: '55993',
brand: 'Phillips66',
category: 'LUBES AND GREASES',
description: 'cuatro cinco seis',
price: '300.00',
quantity: '3'
},
{ product_code: '90210',
brand: 'Phillips66',
category: 'LUBES AND GREASES',
description: 'cuatro cinco seis',
price: '500.00',
quantity: '5'
}
]
请注意[
和]
,而不是最外层的{
和}
。
如果你有一个对象:
var object1 = {foo: "bar"};
和另一个对象:
var object2 = {biz: "baz"};
然后选项#1如下所示:
object1.anyNameHere = object2;
...会给你:
{
foo: "bar",
anyNameHere: {
biz: "baz"
}
}
或选项#2:
var a = [object1, object2];
...会给你:
[
{
foo: "bar"
},
{
biz: "baz"
}
]
答案 2 :(得分:1)
有两种方法,但第一种方法是使用for循环轻松检索数据的最佳方式
var object1 = { product_code: '55993',
brand: 'Phillips66',
category: 'LUBES AND GREASES',
description: 'cuatro cinco seis',
price: '300.00',
quantity: '3'
};
var object2 ={ product_code: '55993',
brand: 'Phillips66',
category: 'LUBES AND GREASES',
description: 'cuatro cinco seis',
price: '300.00',
quantity: '3'
}
1)创建一个数组变量并推送该数组中的所有对象
var myObjectList = [];
myObjectList.push(object1);
myObjectList.push(object2);
2)您可以创建对象并为该对象指定值
var myObjectList = {object1: object1, object2 : object2};
答案 3 :(得分:0)
您可以使用ES6传播运算符来附加对象。
object = { ...object,
...{ product_code: '90210',
brand: 'Phillips66',
category: 'LUBES AND GREASES',
description: 'cuatro cinco seis',
price: '500.00',
quantity: '5'
}
}
答案 4 :(得分:0)
我赞成使用扩展语法的CaptainAdmin答案。非常有用,很高兴知道它在那里。但是,在这种情况下,使用类似以下内容既方便又正确:
var o1 = {
product_name: "Super One",
};
var o2 = {
quantity: 50,
};
specializeWith(o1, o2);
位置:
function specialize_with(o, S) { for (var prop in S) { o[prop] = S[prop]; } }
那么您的o1
将是:
var o1 = {
product_name: "Super One",
quantity: 50,
};
不幸的是,仔细查看原始问题,我发现最初并不是问这个问题。需要对象数组,而不是继承,专门化或扩展。还是把它留在这里。
另请参见https://github.com/latitov/OOP_MI_Ct_oPlus_in_JS,specializeWith()就是从那里来的。