我想在数组中使用变量作为索引参数,但出于某种原因,当我这样做时,它会以“未定义”的形式出现。有什么想法吗?
var object_number = [];
var x = 1;
function create_new_object()
{
object_number[x] = new happy_object();
x++;
}
答案 0 :(得分:3)
在JavaScript中,数组索引从零开始。当x
从1
开始时,数组的第一个位置会有一个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;