在javascript中使用变量作为数组参数?

时间:2011-03-23 17:50:44

标签: javascript

我想在数组中使用变量作为索引参数,但出于某种原因,当我这样做时,它会以“未定义”的形式出现。有什么想法吗?

var object_number = [];
var x = 1;

    function create_new_object()
    {
        object_number[x] = new happy_object();
        x++;

    }

4 个答案:

答案 0 :(得分:3)

在JavaScript中,数组索引从零开始。当x1开始时,数组的第一个位置会有一个undefined元素。从x=0开始。

然而,有一种更好的方法可以做到这一点。您可以使用Array.push()在末尾添加新元素,而不是手动跟踪列表中的最后一个元素。

var object_number = [];

function create_new_object()
{
    object_number.push(new happy_object());
}

如果您想了解数组中有多少元素,请使用Array.length(或Array.push()返回的数字)。

进一步参考: Array @ MDC

答案 1 :(得分:1)

你的object_number是一个没有元素的空数组。因此,您收到此错误。 要向数组添加元素,您需要使用push方法。

object_number.push(new happy_object() );

此外,您需要从0而不是1开始数组索引。即x应为0。

答案 2 :(得分:0)

除了之前的答案:

与“普通”语言(使用块范围)不同,javascript使用函数范围。 所以当你像这样使用它时,你的函数范围就会存在shure x。

答案 3 :(得分:0)

你不能在js中过多地使用数组键 - 如果你想要一个更加可靠,可定义的关系,你需要通过这样做来模仿一个关联数组:

var object_number = {};
var x = 1;

function create_new_object() {
    object_number[x] = new happy_object();
}

另外,我将结合你的var语句。使变量/功能提升更清晰。

var object_number = {}
  , x = 1;