2

我有以下代码不起作用。我正在尝试将文本“John”推到对象的末尾。我更熟悉 PHP,这适用于 PHP。

var data = {};
var field_name = "first_name";

data[field_name]['answers'][] = "John";

alert(data['first_name']['answers'][0]);

编辑:

我也尝试了以下方法,但没有奏效。

var data = {};
var field_name = "first_name";
var i=0;

data[field_name]['answers'][i] = "John";

alert(data['first_name']['answers'][0]);
4

2 回答 2

1

试试这个:

var data = {};
var field_name = "first_name";
data[field_name] = {};
data[field_name].answers = [];
data[field_name].answers.push("John");

alert(data['first_name'].answers[0]);
于 2012-04-12T16:22:15.673 回答
0

不能像 PHP 那样随意定义更多的数组维度或动态扩展边界。你需要做这样的事情(简写 [ ] 符号也可以用来代替 new Array()。我只是更喜欢这种方式。):

var data = {};
var field_name = "first_name";

//Create the new dimensions
data[field_name] = new Array();
data[field_name]['answers'] = new Array();
//Push the new element
data[field_name]['answers'].push("John");

alert(data['first_name']['answers'][0]);​​​​​​​​​​​​​
于 2012-04-12T16:35:25.917 回答