是否可以使JavaScript对象成为一个数组?也就是说,在保持其现有属性的同时,开始表现得像length
,push
,forEach
等数组?我有一个模糊的想法,即通过重新分配原型可以实现这一点,但有些尝试通过反复试验来避免产生任何结果。
答案 0 :(得分:1)
答案 1 :(得分:0)
我不确定您为什么要这样做,除了访问.length
,.push()
和forEach
之外,正如您所提到的那样。据我所知,你不能强迫这些属性/函数在一个对象上工作,但你当然可以绕过它们:
.length
(来自here):
Object.size = function(obj) {
var size = 0, key;
for (key in obj) {
if (obj.hasOwnProperty(key)) size++;
}
return size;
};
// Get the size of an object
var size = Object.size(myObj);
.push()
:
obj.key = value; //there isn't a much shorter way to add something to an object since you have to specify a key and a value
forEach
:
for(key in obj){
var value;
if(obj.hasOwnProperty(key)){
value = obj[key]; //you now have access to the key and the value in each iteration of obj
}
}