JavaScript向数组中添加元素

59

我该如何将新值推到以下数组中?

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

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


6
JavaScript中的数组和对象是不同的。请参考此链接以了解更多信息:http://www.karmagination.com/blog/2009/07/29/javascript-kung-fu-object-array-and-literals/ - KJYe.Name
2
这不是 JSON。JSON 是一种标记格式,它位于字符串数据内部,看起来像(并以此 JavaScript 字面语法命名)。 - Lightness Races in Orbit
1
未来的读者请注意:这个问题是错误的。它既不是数组,也不是JSON。请阅读答案。 - wizzwizz4
5个回答

123

它不是一个数组。

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。我会给它取一个别的名字。


37
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

8
那是一个对象,不是一个数组。因此你需要这样做:
var json = { cool: 34.33, alsocool: 45454 };
json.supercool = 3.14159;
console.dir(json);

我只有一个问题,我的一些值可能会带有其他字符,大多是像这样的.. "BRK.A",所以我将无法执行json.BRK.A = 32.33; - Jack
你没有提到任何关于“进入”或者你从哪里获取值的信息。因此,根据你的标签,我假设你使用的是纯JavaScript。 - James Sumners
在这些情况下,你可以做类似于这样的事情... json['BRK.A'] = 3.14159; - CodeHxr

6
object["property"] = value;

或者

object.property = value;

JavaScript中的对象和数组在使用上有所不同。最好理解它们的区别:Object vs Array: JavaScript

1
使用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"]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接