奇怪的ES6 Array.every行为

Dmi*_*nov 0 javascript arrays ecmascript-6

[,'a'].every(x => x==='a') 
> True
Run Code Online (Sandbox Code Playgroud)

返回True,虽然第一项是'undefined',因此应该为False?

[,'a'].map(x => x) 
> [undefined × 1, "a"]
Run Code Online (Sandbox Code Playgroud)

Ber*_*rgi 5

内置数组方法忽略稀疏数组上的不存在属性.第一项不是undefined,索引0中根本没有属性.你可以试试

[,'a'].every(x => x==='a') 
> true
[undefined,'a'].every(x => x==='a') 
> false
Run Code Online (Sandbox Code Playgroud)

  • 证明这是一个稀疏数组:`Object.keys([,'a'])`返回`["1"]`,而不是`["0","1"]`. (2认同)