JavaScript推送到数组

时间:2011-03-02 21:03:07

标签: javascript arrays json multidimensional-array

如何将新值推送到以下数组?

json = {"cool":"34.33","alsocool":"45454"}

我尝试了json.push("coolness":"34.33");,但它没有用。

5 个答案:

答案 0 :(得分:115)

这不是阵列。

var json = {"cool":"34.33","alsocool":"45454"};
json.coolness = 34.33;

var json = {"cool":"34.33","alsocool":"45454"};
json['coolness'] = 34.33;

你可以把它做成一个数组,但它会是一个不同的语法(这几乎肯定不是你想要的)

var json = [{"cool":"34.33"},{"alsocool":"45454"}];
json.push({"coolness":"34.33"});

请注意,此变量名称具有高度误导性,因为此处没有JSON 。我会说出别的东西。

答案 1 :(得分:36)

var array = new Array(); // or the shortcut: = []
array.push ( {"cool":"34.33","also cool":"45454"} );
array.push (  {"cool":"34.39","also cool":"45459"} );

您的变量是javascript对象{}而不是数组[]

你可以这样做:

var o = {}; // or the longer form: = new Object()
o.SomeNewProperty = "something";
o["SomeNewProperty"] = "something";

var o = { SomeNewProperty: "something" };
var o2 = { "SomeNewProperty": "something" };

稍后,您将这些对象添加到数组中:array.push (o, o2);

此外,JSON只是javascript对象的字符串表示形式,因此:

var json = '{"cool":"34.33","alsocool":"45454"}'; // is JSON
var o = JSON.parse(json); // is a javascript object
json = JSON.stringify(o); // is JSON again

答案 2 :(得分:8)

这是一个对象,而不是一个数组。所以你会这样做:

var json = { cool: 34.33, alsocool: 45454 };
json.supercool = 3.14159;
console.dir(json);

答案 3 :(得分:7)

object["property"] = value;

object.property = value;

JavaScript中的对象和数组在使用方面有所不同。如果你理解它们是最好的:

Object vs Array: JavaScript

答案 4 :(得分:0)

使用push()函数附加到数组:

// initialize array
var arr = [
    "Hi",
    "Hello",
    "Bonjour"
];

// append new value to the array
arr.push("Hola");

现在数组是

var arr = [
    "Hi",
    "Hello",
    "Bonjour"
    "Hola"
];
// append multiple values to the array
arr.push("Salut", "Hey");

现在数组是

var arr = [
    "Hi",
    "Hello",
    "Bonjour"
    "Hola"
    "Salut"
    "Hey"
];
// display all values
for (var i = 0; i < arr.length; i++) {
    console.log(arr[i]);
}

将打印:

Hi
Hello
Bonjour
Hola 
Salut
Hey

<强>更新

如果要将一个数组的项添加到另一个数组,可以使用Array.concat

var arr = [
    "apple",
    "banana",
    "cherry"
];

arr = arr.concat([
    "dragonfruit",
    "elderberry",
    "fig"
]);
console.log(arr);

将打印

["apple", "banana", "cherry", "dragonfruit", "elderberry", "fig"]