如何将项添加到嵌套数组?

时间:2012-01-13 14:07:32

标签: javascript arrays

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

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

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

4 个答案:

答案 0 :(得分:14)

尝试类似

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

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

答案 1 :(得分:7)

您可以使用push()方法将项​​目添加到数组中,或添加到unshift()以添加到前端。

var newValue = 1234;

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

然后可以使用与此类似的东西绑定事件处理程序;

$("yourSelector").on("click", function(){
    var value = $("input").val();

    cars.vendor[0].type.push(value);
});

请记住,你拥有的不是JSON。它是使用文字语法声明的JavaScript对象和数组的嵌套结构。有关详细信息,请参阅Javascript object Vs JSON

答案 2 :(得分:1)

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

<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>

答案 3 :(得分:-1)

您可以尝试下面给出的内容

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