有很多地方提到数组是JavaScript中的特殊对象类,例如这里:https://www.codingame.com/playgrounds/6181/javascript-arrays---tips-tricks-and-examples。因此,既然一个
但是
object
是由属性(或键)和值组成的集合,我在想是否有一种方法可以从一个对象开始,并以数组结束(即使用Array.isArray()
方法返回该对象为数组并且返回true
)。我已经开始查看数组的属性:
let arr = [0, 1, 2, 3, 4, 5];
console.log(Object.getOwnPropertyNames(arr));
console.log(Array.isArray(arr));
所以我尝试使用对象来模拟相同的操作:
let arrEmulation = {0:0, 1:1, 2:2, 3:3, 4:4, 5:5, "length":6};
console.log(Object.getOwnPropertyNames(arrEmulation));
console.log(Array.isArray(arrEmulation));
Array.isArray(arrEmulation)
仍然返回false
。首先,我想道歉的是,如果这是一个愚蠢的问题,但是否有任何方法可以手动将一个object
转换为array
并添加特殊属性(或键)?请注意,我不想知道如何将对象转换为数组,我只想了解哪些特殊事物使得将一个对象解释为一个数组成为可能。
isArray()
文档中引用的...但我不确定它是否真正涵盖了你寻找的细节。 - Tyler RoperObject.prototype.toString.call(arrEmulation)
返回[object Array]
。不过我不确定这个函数的定义是什么。 - david