无法在javascript中获取对象属性的数组长度

时间:2013-06-11 07:00:31

标签: javascript

定义了一个简单的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?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

questions_completed:new Array(2)