你的基本假设是错误的。
这个:
var object_list = {}
不是一个列表。它不是一个数组,你不能通过索引引用它的项目,因此它也没有.length
属性。
你所追求的是一个普通的数组:
var object_list = [];
现在您可以将项目推入其中:
object_list.push(object_x);
编辑:根据您的评论和编辑,我认为您真正追求的是几个辅助功能:
function AddToList(list, item) {
var counter = 0;
for (var key in list)
counter++;
var key = "item_index_" + counter;
list[key] = item;
}
function GetItemByIndex(list, index) {
var counter = 0;
var existingKey = "";
for (var key in list) {
if (counter == index) {
existingKey = key;
break;
}
counter++;
}
return (existingKey.toString().length > 0) ? list[existingKey] : null;
}
有了这些,您现在可以拥有这样的代码:
var mainList = {};
var newItem = { "foo": "bar" };
AddToList(mainList, newItem);
var dummy = GetItemByIndex(mainList, 0)["foo"]; //will contain "bar"
现场测试用例。