javascript - javascript 中奇怪的关联数组行为

标签 javascript node.js

如果我在 chrome 控制台上执行下面的代码,我得到的答案是关联数组:

var arr= [];
var i = 1;
for(var j = 1; j < 3; j++)
    arr[j]=j;console.log(arr);

答案:[1:1, 2:2]

但是当我使用 Node 执行时:[ , 1, 2 ]

为什么会有这么大的差异?据我所知,两者都在使用 v8。

最佳答案

Firefox 说

Array [ <1 empty slot>, 1, 2 ]

IE Edge 说

[object Array][undefined, 1, 2]

而且,他们都是正确的

Chrome 根本不报告空索引 0

Node 显示索引 0 为空

Firefox 准确地告诉您发生了什么

试试这个:

var arr= [];var i = 1; for(var j = 1; j < 3; j++) arr[j*3]=j+3;console.log(arr);

火狐:

Array [ <3 empty slots>, 4, <2 empty slots>, 5 ]

Node

[ , , , 4, , , 5 ]

浏览器边缘

[object Array][undefined, undefined, undefined, 4, undefined, undefined, 5]

Chrome

[3: 4, 6: 5]

关于javascript - javascript 中奇怪的关联数组行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31981288/

相关文章:

javascript - 如何使用 jQuery 获取最后一个字符串?

javascript - jQuery 通过单击按钮聚焦于警报框

c# - 我可以在 Azure Functions 2.0 中同时使用 dotnet 和 node 吗?

javascript - NodeJs 中的静态 HTTP 文件服务器 : Sometimes external . js 和 .css 文件加载正常,有时加载不正确?

javascript - Json错误: Cannot read property 'xxx' of undefined

javascript - 使用 jquery 变量替换点、冒号或任何其他字符的通用正则表达式

javascript - 通过单选按钮启用\禁用元素

Node.js:有效访问 ndarray 中的值以进行像素读取

来自 node.js 的 Facebook access_token 失败

Javascript,使用正则表达式规范化电话号码字符串