我遇到过这个:
var stdin = {123:1,423:1};
var stdout = Object.keys(stdin);
console.log(stdout); //["123", "423"]
console.log(typeof(stdout)); //object
console.log(stdout[0]) //123
ECMAScript® Language Specification说:
15.2.3.14 Object.keys ( O )
When the keys function is called with argument O, the following steps are taken:
... 6. Return array.
JSFIDDLE:http://jsfiddle.net/wpVvv/1/
在 Windows 7 上的 Chrome 和 Firefox 上进行了测试。
这是怎么回事?应该是数组,对我来说看起来像数组,是对象?
编辑:
typeof() 。呃。
最佳答案
数组是对象。
尝试在控制台中输入 typeof([1,2,3])
- 您还会得到 object
结果。
现在,如果您输入 Object.prototype.toString.call( [1,2,3] )
,您将得到 [object Array]
,即有点用(并且您将获得与 Object.keys
的返回值相同的结果)。
如果您想要 bool 结果,只需使用 Array.isArray
(请参阅 this related answer )
关于javascript - 为什么返回 Object.keys() 一个对象(看起来像数组)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21642712/