【问题标题】:How do I add items to a nested Array?如何将项目添加到嵌套数组?
【发布时间】:2012-01-13 14:07:32
【问题描述】:

假设我在 Javascript 中有一个这样的数组:

var cars = { vendor: [ { type: [ 'camry', 'etc' ] } ] } 

在 Javascript 中,我可以使用什么命令来添加要键入的项目...例如,如果我想要一个文本框,用户可以在其中放置文本,然后点击一个按钮,将项目添加到数组中。要添加的项目需要与“camry”和“etc”放置相同的项目。谢谢!

【问题讨论】:

    标签: javascript arrays


    【解决方案1】:

    试试类似的东西

    cars.vendor[0].type.push("foo");
    

    其中“foo”是您要添加的数据。

    【讨论】:

      【解决方案2】:

      您可以使用push() 方法将项目添加到数组的末尾,或使用unshift() 方法添加到前面。

      var newValue = 1234;
      
      cars.vendor[0].type.push(newValue);
      

      然后可以使用类似于 this 的方式绑定事件处理程序;

      $("yourSelector").on("click", function(){
          var value = $("input").val();
      
          cars.vendor[0].type.push(value);
      });
      

      记住,你所拥有的根本不是 JSON。它是 JavaScript 对象和数组的嵌套结构,使用文字语法声明。请参阅Javascript object Vs JSON 了解更多信息。

      【讨论】:

        【解决方案3】:

        此问题的示例测试示例如下:

        <html>
        <head>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js" type="text/javascript"></script>
        <script type="text/javascript">
        jQuery(document).ready(function(){
            var cars = {
                "vendor": [
                    {
                        "type": [
                            "camry",
                            "maruti",
                            "bmw"
                        ]
                    }
                ]
            };
            $("#add").click(function(){
                var types=cars["vendor"][0]["type"];
                types.push($("#json").val());
                $("#types").html(types.toString());
            });
        });
        </script>
        </head>
        <body>
        <input type="text" id="json" name="json"/>
        <input type="button" id="add" name="add" value="ADD"/>
        <div id="types" style="margin:10px;border:1px dotted green;width:400px;"></div>
        </body>
        </html>
        

        【讨论】:

        • 在这里唤醒恐龙,但是如果还没有定义“类型”,这意味着用户首先登陆页面并想要动态构建供应商对象怎么办?
        【解决方案4】:

        你可以试试下面给出的方法

        var cars = { vendor: [ { type: [ 'camry', 'etc' ] } ] } ;
        cars.vendor[0].type[2]="abc";
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2020-07-01
          • 1970-01-01
          • 2019-02-11
          • 1970-01-01
          • 2022-07-02
          • 2020-05-29
          • 2021-10-01
          相关资源
          最近更新 更多