Если этот объект на самом деле является массивом, .length всегда будет получать количество индексов. Если вы имеете в виду объект и хотите получить количество атрибутов / ключей в объекте, я не знаю, как это сделать, кроме счетчика:
var myArr = [];
alert(myArr.length);// 0
myArr.push('hi');
alert(myArr.length);// 1
var myObj = {};
myObj["color1"] = "red";
myObj["color2"] = "blue";
// only way I know of to get "myObj.length"
var myObjLen = 0;
for(var key in myObj)
myObjLen++;