将多属性项推送到数组JAVASCRIPT
我有这样一个数组:将多属性项推送到数组JAVASCRIPT,javascript,arrays,push,Javascript,Arrays,Push,我有这样一个数组: var newCircles = [{ num: 0, name: "title0", x: 280, y: 200, color: "#555555", r: 60 }, { num: 1, name: "title1", x: 480, y: 200, color: "#555555", r: 80 }]; $(newCircles).push(', { num: "'+ne
var newCircles = [{
num: 0,
name: "title0",
x: 280,
y: 200,
color: "#555555",
r: 60
},
{
num: 1,
name: "title1",
x: 480,
y: 200,
color: "#555555",
r: 80
}];
$(newCircles).push(', { num: "'+newCircles.length+'", name : "title "'+(newCircles.length)+'", x : "'+newCircles[chosenCircle].x+'", y : "'+newCircles[chosenCircle].y+'", color : "#7f38a7", r : "'+newCircles[chosenCircle].r+'" }');
我正在尝试推出一组新的信息,比如:
var newCircles = [{
num: 0,
name: "title0",
x: 280,
y: 200,
color: "#555555",
r: 60
},
{
num: 1,
name: "title1",
x: 480,
y: 200,
color: "#555555",
r: 80
}];
$(newCircles).push(', { num: "'+newCircles.length+'", name : "title "'+(newCircles.length)+'", x : "'+newCircles[chosenCircle].x+'", y : "'+newCircles[chosenCircle].y+'", color : "#7f38a7", r : "'+newCircles[chosenCircle].r+'" }');
但它不起作用。有人有什么建议吗?为什么是字符串?为什么要用jQuery来包装newCircles
newCircles.push({ num: newCircles.length, x: newCircles[chosenCircle].x, ... });
试试这个
newCircles.push( { num: newCircles.length,
name: "title "+ newCircles.length,
x: newCircles[chosenCircle].x,
y: newCircles[chosenCircle].y,
color: "#7f38a7",
r: newCircles[chosenCircle].r
});
别担心,如果语法完全错误,javascript可能无法正常工作
newCircles.push({
"num":newCircles.length,
"a":"someval",
"b":"some other val"
});
您使用的是字符串,但要使用的是字符串(通常称为对象文字),就像您初始化数组时所做的那样:
newCircles.push({
num: newCircles.length, // Or you more likely want `newCircles.length + 1`
name: "title " + (newCircles.length), // Again, probably +1
x: newCircles[chosenCircle].x,
y: newCircles[chosenCircle].y,
color: "#7f38a7",
r: newCircles[chosenCircle].r
});
(也没有理由通过$()
传递它)
初始化数组时,
:
左侧的标记是属性名称,右侧表达式的值将被指定为这些属性的值。使用push方法时,不需要前导逗号
将对象直接推到数组的末尾
此外,不需要将对象包装为字符串
$(newCircles).push({ num: "'+newCircles.length+'" [...]});
删除newCircles周围的$()。您需要的是对该变量的直接引用,而不是jQuery在查找时返回的内容。您正在将字符串推入数组中。 如果要将另一个对象推入数组,请通过 用作
var newCircles=[
{
数字:0,
名称:“标题0”,
x:280,
y:200,
颜色:#555555“,
r:60
},
{
数目:1,,
名称:“标题1”,
x:480,
y:200,
颜色:#555555“,
r:80
}
];
推送({“num”:“10”,“name”:“name”,“x”:“100”,“y”:“100”,“color”:“color”,“r”:“r”});
console.log(newCircles);
对于初学者,您有多个对newCircles
的引用。它是对象还是数组?您是否尝试过将对象推入而不是字符串表示?或者将对象的内容保存到一个变量中,并添加该变量,例如var obj={num:…};推(obj);另外,您似乎正在为$(newCircles)使用jQuery对象。push在您的代码中不是jQuery对象,而push也不是jQuery函数。firebug或任何东西是否显示任何错误?它引用的是数组“newCircles”中已经存在的项。firebug没有错误,我将尝试var obj的想法。这对我来说非常有效,许多人添加了非常相似(如果不是完全相同)的解决方案。非常感谢!