如何防止对象数字属性自动排序?

2024-01-09

为什么我遇到这个问题: 我试图解决一个算法问题,我需要返回数组中出现次数最多的数字。像 [5,4,3,2,1,1] 应该返回 1。 而且,当两个数字与最大出现次数同时出现时,第一个出现。像 [5,5,2,2,1] 返回5因为5首先出现。我使用一个对象来存储每个数字的外观。关键是数字本身。

所以当输入是 [5,5,2,2,1] 我的对象应该是Object {5: 2, 2: 2, 1: 1}但实际上我得到了Object {1: 1, 2: 2, 5: 2}所以当我使用 for..in 迭代我得到的对象时2返回而不是5。所以这就是我问这个问题的原因。

此问题出现在 Chrome 控制台中,我不确定这是否是一个常见问题: 当我运行以下代码时

var a = {};
a[0]=1;
a[1]=2;
a[2]=3;

a is: Object {0: 1, 1: 2, 2: 3}

但是当我颠倒分配顺序时,例如:

 var a = {};
 a[2]=3;
 a[1]=2;
 a[0]=1;

a也是:Object {0: 1, 1: 2, 2: 3}数字属性自动按升序排序。 我尝试为数字属性添加前缀或后缀,例如

var a = {};
a['p'+0]=1;
a['p'+1]=2;
a['p'+2]=3;
console.log(a);//Object {p0: 1, p1: 2, p2: 3}

这保持了财产秩序。这是解决问题的最好方法吗?有没有办法阻止这种自动排序行为?这种情况只发生在 Chrome V8 JavaScript 引擎中吗?先感谢您!


target = {}
target[' ' + key] = value // numeric key

这可以防止对象数字属性的自动排序。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何防止对象数字属性自动排序? 的相关文章

随机推荐

  • 连续从流中读取?

    我有一个 Stream 对象 偶尔会获取一些数据 但间隔时间不可预测 Stream 上出现的消息是明确定义的 并提前声明其有效负载的大小 大小是包含在每个消息的前两个字节中的 16 位整数 我想要一个 StreamWatcher 类来检测
  • Flask:如何读取应用程序根目录中的文件?

    我的 Flask 应用程序结构如下 application top application static english words txt templates main html urls py views py runserver py
  • 仅增加选定边缘的宽度 (cytoscape.js)

    当我选择几个相连的节点或简单的边时 如何预定义使所选边的宽度变大 而不影响整个网络的其余边或节点的宽度 我在选择节点或边时预定义了这一点 cy cytoscape style cytoscape stylesheet selector se
  • 正则表达式匹配第一个和最后一个单词或任何单词

    我有一个巨大的文件 其中包含如下数据列表 fabulous 7 526 2301 2 excellent 7 247 2612 3 superb 7 199 1660 2 perfection 7 099 3004 4 terrific 6
  • 将 Tweepy Status 对象转换为 JSON

    我在用着Tweepy http www tweepy org下载推文 我有一个程序 然后编写实际的Status对象以文本形式存在于文件中 如何将其转换为 JSON 或将此对象导入回 Python 我尝试过使用 JSON 库进行编码 但 St
  • 使用 XCB 获取键盘布局和按键符号

    我正在为 Linux 创建一个集成在简单窗口管理器中的屏幕键盘 我目前正在使用 XCB 现在我想制作假击键 使用 xtest 扩展一切工作正常 除了我无法从我想要放置的键符中获取真实键码的细节之外 目前我正在使用 xcb key symbo
  • Django中如何防止多次登录

    我正在编写一个无法同时登录的用户系统 如果账户在某处处于登录状态 而有人在其他位置登录同一个账户 后一个将登录 前一个将注销 我正在使用一个模型 其中 oneToOneField 与用户模型关联 并保存该用户的会话 ID 代码如下 from
  • Angular 4:表单提交事件完成后关闭模式

    我正在使用 bootstrap 4 modal 当我按下关闭按钮时 modal 会正确关闭 但我想在提交表单中的创建按钮后关闭模式 我正在使用角度4 div class modal fade div class modal dialog d
  • 如何在 AfterMethod 中 TestNG 中测试失败?

    我想在每次测试后检查一些外部日志文件 看看执行过程中是否存在错误 抛出异常AfterMethod不起作用 因为 TestNG 的处理方式不同 它只会使配置方法失败 而不是前面的测试失败 我的方法是这样的 AfterMethod always
  • Perl 脚本无法运行;仅在浏览器中显示实际代码

    我是 Perl 新手 无法让我的脚本正常运行 我应该将实际的 Perl 脚本放在哪里才能正确运行 我正在笔记本电脑上测试所有内容 并尝试从 html 页面调用脚本 而我得到的只是 Web 浏览器中显示的实际脚本 代码 本身 而不是代码设计产
  • SQL Server 中的递归好吗?

    我在 SQL Server 中有一个表 它具有 Item ID Item ParentID 的正常树结构 假设我想迭代并获取特定 Item ID 的所有子项 在任何级别 递归似乎是这个问题的直观候选者 我可以编写一个 SQL Server
  • 如何在一个 SSRS 页面上拥有多个表来表示 SQL 中的一个值?

    我开发了一份一页报告 其中有 4 个表格 我对这个结果很满意 这是针对一个地区显示的 district 002 数据集仅选择了一个地区 我想在数据集中选择多个地区 一个 SQL 字段 并有多个页面代表每页一个地区 所以 换一种方式来说 大约
  • authClient.login 返回错误“未经授权的请求来源”

    这在过去几天里才开始发生 我的代码没有改变 我犯了一个错误 还是这是新的 这似乎意味着我应该在 firebase forge 中的安全规则中添加一条规则 以允许从我正在处理的域 在本例中为 localhost 进行访问 但我不知道在哪里可以
  • 使用汇编器(NASM 32 位)输入和处理 IEEE 784 上的浮点数

    我正在大学学习计算机体系结构科目 我被分配编写一个工具 该工具将浮点数作为输入 我想将其存储在内存中并打印出 IEEE 784 标准中数字的二进制表示形式的十六进制形式 现在我确定了 IEEE 784 纸上将任何十进制浮点数转换为其二进制形
  • 获取点阵条形图函数中分组条形的中点值

    我试图弄清楚如何确定分组条形的中点值 即每个条形中心的实际 X 位置 这在基本 R 中很容易完成barplot功能 但是我希望能够做到这一点lattice s barchart 我的目标是在相应栏的顶部显示文本列的值 只要我不使用子组 下面
  • 在 Django 中启用 CORS(跨域请求)

    我正在尝试使用立交桥 APIhttp wiki openstreetmap org wiki Overpass API http wiki openstreetmap org wiki Overpass API在 Django 上运行的项目
  • 为什么R中order(order(x))等于rank(x)?

    In this post http www portfolioprobe com 2012 07 26 r inferno ism order is not rank 据称order order x 是相同的rank X 虽然一些实验证实了
  • 张量流 model.evaluate 和 model.predict 非常不同的结果

    我正在构建一个简单的 CNN 用于二值图像分类 并且从 model evaluate 获得的 AUC 远高于从 model predict roc auc score 获得的 AUC 整个笔记本是here https github com
  • Firebase 安全和规则,如何让用户删除自己的数据?

    我在 firebase 中的数据如下所示 在我的网络应用程序中 访问它的每个人都会通过 firebase 进行匿名身份验证 并且他们的 UID 与用户创建的每个帖子一起存储 KF5N2V dKD1dMHebUqc note Hello ev
  • 如何防止对象数字属性自动排序?

    为什么我遇到这个问题 我试图解决一个算法问题 我需要返回数组中出现次数最多的数字 像 5 4 3 2 1 1 应该返回 1 而且 当两个数字与最大出现次数同时出现时 第一个出现 像 5 5 2 2 1 返回5因为5首先出现 我使用一个对象来