javascript - Safari 中的 Object.keys 行为不同

标签 javascript object safari

考虑如下向对象添加值

var obj ={};
obj["3"] = 10;
obj["2"] = 10;
obj["0"] = 10;
alert(Object.keys(obj));

在除 safari 之外的所有浏览器中,Object.keys 返回类似 0,2,3,而在 safari 中,这返回为添加顺序,如 3,2,0

这是 Safari 中的已知问题(任何特定版本)

最佳答案

唯一的要求是它保留与 for ... in 相同的顺序

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys

如果没有,您应该将其作为 Safari 的错误提交,否则它符合规范。

关于javascript - Safari 中的 Object.keys 行为不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37802658/

相关文章:

javascript - 检查浏览器的位置是否打开仅一次

javascript - 使用 jquery/javascript 将工作 for 循环调用 JSON 分为两部分

javascript - 如何从 JavaScript 的文件对象中获取所有键/参数/属性?

php - mysql 表中的 javascript 多维数组 - 不知道那种对象对象是什么

Objective-C 从文本文件创建对象

html - 菜单按钮显示在 safari 中的下一行

javascript - 具有相同 CSS 代码的 Chrome 和 Safari 中的不同中心

javascript - 我想在同一张卡片中显示数据作为两列任何建议

javascript - 更改location.href后执行函数

css - 动画不适用于 Safari 和 IE 11 中的页面重定向