Показать сообщение отдельно
  #23 (permalink)  
Старый 28.03.2013, 14:29
Аватар для rgl
rgl rgl вне форума
Профессор
Отправить личное сообщение для rgl Посмотреть профиль Найти все сообщения от rgl
 
Регистрация: 28.02.2011
Сообщений: 349

Aetae,
Только функция должна быть чуть посложнее - нужно отсекать дробные числа, слишком большие числа, и много чего еще:
var test = {
    get length(){
        var j = 0;
        for(var i in this)if(!isNaN(i) && i > j) j = +i ;
        return j+1
    }

};
test[0] = "a";
test[1] = "bb";
test[1e100] = "ccc";

var test2 = [];
test2[0] = "a";
test2[1] = "bb";
test2[1e100] = "ccc";
 
alert( test.length + " | " + test2.length );
Ответить с цитированием