Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将多属性项推送到数组JAVASCRIPT_Javascript_Arrays_Push - Fatal编程技术网

将多属性项推送到数组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的想法。这对我来说非常有效,许多人添加了非常相似(如果不是完全相同)的解决方案。非常感谢!