JavaScript 推送到数组

Posted

技术标签:

【中文标题】JavaScript 推送到数组【英文标题】:JavaScript push to array 【发布时间】:2011-07-07 14:29:17 【问题描述】:

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

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

我试过json.push("coolness":"34.33");,但没用。

【问题讨论】:

数组和对象在javascript中是不同的karmagination.com/blog/2009/07/29/… 这不是 JSON。 JSON 是一种包含在字符串数据中的标记格式,它恰好看起来像(并以此命名)这种 Javascript 文字语法。 未来人的注意事项:问题是错误的。它不是数组,也不是 JSON。请阅读答案。 【参考方案1】:

这不是一个数组。

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。我会把它命名为别的。

【讨论】:

【参考方案2】:
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

【讨论】:

【参考方案3】:

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

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

【讨论】:

我只有一个问题,我有一些可能与其他角色一起出现的值,主要是这样..“BRK.A”所以我不能做一个 json.BRK .A= 32.33; 你没有提到任何关于“进来”或你可能从哪里获得价值的事情。所以,根据你的标签,我假设是 vanilla JavaScript。 在这些情况下,您可以执行类似... json['BRK.A'] = 3.14159;【参考方案4】:
object["property"] = value;

object.property = value;

JavaScript 中的对象和数组在用法上是不同的。如果你能理解它们最好:

Object vs Array: JavaScript

【讨论】:

【参考方案5】:

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

【讨论】:

以上是关于JavaScript 推送到数组的主要内容,如果未能解决你的问题,请参考以下文章

如何按键过滤数组并使用javascript将值推送到另一个数组

在javascript中将新元素推送到数组时出错

在将元素推送到 HTML ID 时更新实时 JavaScript 数组

如何在 Vuejs/Javascript 中将 Object 元素推送到数组中

JavaScript:如何将数组中的数据推送到子数组中,每16个项目都有一个数组[重复]

Javascript/jQuery - 将项目推送到数组并从数组中删除