2012-01-13 88 views
2

说我有一个数组像这样在Javascript:如何将项目添加到嵌套数组?

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

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

回答

12

尝试像

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

其中 “富” 是你的数据的补充。

+1

谢谢...这完美的作品! – amlane86 2012-01-13 14:34:16

+0

不客气:) – jack 2012-01-15 14:45:17

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 Objects和Arrays的嵌套结构,使用文字语法声明。有关更多信息,请参阅Javascript object Vs JSON

+1

+1给出了很好的参考™。 – PPvG 2012-01-13 14:16:46

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

在这里唤醒恐龙,但如果没有定义“类型”,这意味着用户第一次登陆页面并希望动态构建供应商对象会怎么样? – HPWD 2017-10-03 17:45:46

-1

你可以尝试像下面

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