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

unable to get array length of object property in javascript

本文关键字:属性 数组 取对象 获取 javascript      更新时间:2023-09-26

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

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

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

questions_completed:新数组(2)