无法获得列表的长度

时间:2011-06-06 12:21:53

标签: javascript appcelerator

Hay,我有以下列表

var feedObjects = {
    0:[
        "url",
        "image"
    ],
    1:[
        "url",
        "image"
    ]
}

但是当我尝试使用feedObjects.length时,它总是返回null,任何想法?

4 个答案:

答案 0 :(得分:8)

您有一个Object{}是文字Object符号),一个Array,所以没有{{1属性。

您将需要使用length进行迭代,但这不会保证属性的排序,与for ( in )不同(尽管实际上它们通常按照定义的顺序排列)。

更好的是,将Array{ }交换并使用真实[ ](与JavaScript的数组一样接近真实数组)。

答案 1 :(得分:3)

您已声明了关联数组,而不是索引数组。试试这个

var feedObjects = [
    [
        "url",
        "image"
    ],
    [
        "url",
        "image"
    ]
];

答案 2 :(得分:2)

您的对象没有长度属性或方法 -

你需要统计其成员。

var feedObjects={
    ["url","image"],["url","image"]
}
function count(){
    var counter= 0;
    for(var p in this){
        if(this.hasOwnProperty(p))++counter;
    }
    return counter;
}
count.call(feedObjects)

返回值:(数字)= 2

或定义一个数组:

var feedObjects=[ ["url","image"],["url","image"]];

<强> // feedObjects.length = 2;

答案 3 :(得分:0)

Object.size = function(obj) {
     var size = 0, key;
     for (key in obj) {
         if (obj.hasOwnProperty(key)) size++;
     }
     return size;
 };
alert(Object.size(feedObjects))