请查看此代码:
var data = {
"cell": [
"1",
"text1",
"user1",
"date1"
]};
这是一个只包含1个元素的数组,现在我需要一个代码来将以下值设置为数据变量:
data = {
"cell": [
"1",
"text1",
"user1",
"date1"
]
},
{
"cell": [
"2",
"text2",
"user2",
"date2"
]};
我使用以下代码,但它不起作用。
var data = {
"cell": [
"1",
"text1",
"user1",
"date1"
]
};
data += {
"cell": [
"2",
"text2",
"user2",
"date2"
]
};
注意,我想 ADD 到这个数组。我需要一个代码来向数据变量添加另一个元素。
答案 0 :(得分:2)
那些不是数组,它们是对象文字。所以你想要做的就是将两个对象合并在一起。
请参阅How can I merge properties of two JavaScript objects dynamically?:
for (var attrname in obj2) { obj1[attrname] = obj2[attrname]; }
如果你正在使用一个框架来破坏你的原型 你必须得到像
hasOwnProperty
这样的支票才能获得更多的荣誉 代码将适用于99%的案例。示例功能:
/** * Overwrites obj1's values with obj2's and adds obj2's if non existent in obj1 * @param obj1 * @param obj2 * @returns obj3 a new object based on obj1 and obj2 */ function merge_options(obj1,obj2){ var obj3 = {}; for (var attrname in obj1) { obj3[attrname] = obj1[attrname]; } for (var attrname in obj2) { obj3[attrname] = obj2[attrname]; } return obj3; }
如果你正在使用jQuery,你可以使用$.extend
。
答案 1 :(得分:1)
语法不正确。应该是:
var data = [{
"cell": [
"1",
"text1",
"user1",
"date1"
]}];
data.push( {.....your new object....});
答案 2 :(得分:1)
data
是一个对象。它不是一个数组。如果要添加它,则需要为其上的新属性赋值。
var data = {
"cell": ["1", "text1", "user1", "date1"]
};
data.cell2 = ["2", "text2", "user2", "date2"];
也许您希望data
成为一个对象数组?
var data = [{
"cell": ["1", "text1", "user1", "date1"]
}];
data.push({
"cell": ["2", "text2", "user2", "date2"]
});
答案 3 :(得分:1)
两件事:
1)这不是一个数组,它是一个对象。
2)你不能在一个对象中拥有两次相同的密钥。
要向对象添加密钥,请使用:
data['cell2'] = [
"2",
"text2",
"user2",
"date2"
];
答案 4 :(得分:1)
如果从
中查看数据对象var data = {
"cell": [
"1",
"text1",
"user1",
"date1"
]};
你会看到它有一个属性单元,它是一个包含4个元素的数组。如果你想要添加另一个单元格,那么你可以使数据对象成为一个数组:
var data = [{
"cell": [
"1",
"text1",
"user1",
"date1"
]}];
data.push( {"cell": ["2","text2","user2","date2"]});
或者您可以向数据对象添加另一个单元格属性,但它需要一个不同的键,否则您将覆盖当前的单元格属性。
data['cell2'] = [
"2",
"text2",
"user2",
"date2"
];
答案 5 :(得分:-1)
您应该像这样设置数据
data = [{
"cell": [
"1",
"text1",
"user1",
"date1"
]
},
{
"cell": [
"2",
"text2",
"user2",
"date2"
]
}];
要为数据添加新单元格,请按照这样做
var dt = {
"cell": [
"3",
"text3",
"user3",
"date3"
]
};
data.splice(data.length,0,dt);