JavaScript对象中数组的长度

5

我有一个JavaScript对象的定义如下:

var active = {
    waypoints: [],
    scenario: []
}

我使用以下代码将场景推入数组:

var myScenario = {
    id:     terrainId,
    text:   text

}; 

active.scenario.push(myScenario);       

但是,当下列情况之一发生时,我会得到0:

console.log(active.scenario.length);

当然,我不能循环遍历数组内容。如果我这样做:
console.log(active.scenario)

我能看到Chrome内的数组内容以及正确的数组长度。我拥有定义和使用数组的类似代码,但是在对象定义之外。非常感谢提供为什么长度为0的见解。

请问您能否提供一个 jsFiddle 来重现这个行为? - Lix
你是在使用原生的 JavaScript 数组,还是使用了像 Knockout 这样的库中的数组? - Chris Sainty
1个回答

3

运行良好:

JSFiddle

var terrainId = 1;
var text = "text";

var active = {
    waypoints: [],
    scenario: []
}

var myScenario = {
    id:     terrainId,
    text:   text
}; 

active.scenario.push(myScenario);       

console.log(active.scenario.length);

看起来问题出在其他地方。


3
谢谢san.chez,你是对的,问题出在别处的ajax调用时间。更具体地说,是我的ajax调用中异步处理“成功”函数调用设置数组内容。从这个问题中,我学到了必须熟悉JSFiddle来自己设置快速测试,再次感谢。 - Grumpybeard

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接