2

我不明白为什么这不起作用:

var test = ["String", 300];
var other = test.concat(500);
alert(test[2]);

或者

alert(test.length) // 1 not 2

是否有一种方法可以将元素添加到现有数组并使其像上面一样可访问?

4

4 回答 4

5

concat()返回一个数组。你想要的是push()

test.push(500);

Demo看区别:

> var test = ["String", 300];
> var other = test.concat(500);
> test
[ 'String', 300 ]
> other
[ 'String', 300, 500 ]

> test.push(1234)
> test
[ 'String', 300, 1234 ]
> other
[ 'String', 300, 500 ]
于 2013-08-31T11:36:39.963 回答
3

如果您尝试向此数组添加元素,请使用push -

var test = ["String", 300];
test.push(500);

alert(test[2]);  // will alert 500
alert(test.length); // will alert 3

这比concat您只想将元素添加到现有数组中要容易得多。

于 2013-08-31T11:36:48.437 回答
3

您可以使用不同的运算符向数组添加新元素,因为 JavaScript 是一种非常灵活的语言。

您可以使用push()

var test = ["String", 300];
test.push(500);

或者在数组的下一个索引处添加一个新元素:

var test = ["String", 300];
test[test.length] = 500;

或者在你的问题中使用concat() :

var test = ["String", 300];
var other = test.concat(500);
    ^^^^^

在最后一个示例中,结果连接保存在另一个变量(不是test)中。

other == ["String", 300, 500]
于 2013-08-31T11:37:03.827 回答
1

您可以使用push下面的方法将元素添加到现有数组中。

test.push(500);

编辑: concat()返回一个新数组,正如 ThiefMaster 已经指出的那样。

演示

于 2013-08-31T11:37:04.333 回答