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