【问题标题】:JavaScript push to arrayJavaScript 推送到数组
【发布时间】: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。请阅读答案。

标签: javascript arrays json multidimensional-array


【解决方案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"]
        

        【讨论】:

          猜你喜欢
          • 2016-05-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-04-18
          • 2021-11-13
          • 2015-07-15
          • 1970-01-01
          相关资源
          最近更新 更多