1

定义了一个简单的 javascript 对象并将数组分配给一个属性,但无法获取数组的长度。以下代码返回 2 而不是 1。

//activity object
var activity={
    timer:0,
    questions_completed:new Array(2),
    knifes:0,
    getTimer:function(){
        return timer; 
    } 
};

alert(activity.questions_completed.length); //getting 2?
4

2 回答 2

6

new Array单个参数作为数字传递给它,将创建一个具有特定长度的数组:

var arr = new Array(2);

arr;
// -> [undefined, undefined]

arr.length;
// -> 2

而是使用[]符号:

var arr = [2];

arr;
// -> [2]

arr.length;
// -> 1

var activity = {
    timer:0,
    questions_completed: [2],
    knifes:0,
    getTimer:function(){
        return timer; 
    } 
};

alert(activity.questions_completed.length);
// 1
于 2013-06-11T07:10:37.767 回答
0

下面的行定义了数组的长度为 2,但是您没有在数组中推送任何项目,长度将显示为 2,这是绝对正确的..!

问题_完成:新数组(2)

于 2013-06-11T07:09:41.503 回答