IE9 中的迭代顺序不同

2023-12-14

在 IE9 中,对象属性的数字键是排序的,这导致 IE9 中的迭代顺序与 IE8 不同,在 IE8 中插入时保留顺序。

var obj = {
  "5": "John",
  "1": "Kumar",
  "3": "Rajesh",
  "2": "Yogesh"
}

for(var key in obj) alert(key) 

Result

//IE9中为1,2,3,4

//IE8、IE7中为5,1,3,2

无论如何,我可以禁用 IE9 的自动排序功能吗?如果不是,那么是否有可能以某种方式让浏览器理解键应该被识别为字符串而不是数字(但不附加任何空格、_或任何其他特殊字符)

请推荐!!

这是我遇到这个问题的示例代码片段。

    function Person(id, name) {
    this.id = id;
    this.name = name;
}

var persons = new Object();

var p1 = Person("5","John")
persons[5]=p1
var p2 = Person("1","Kumar")
persons[1]=p2  
var p3 = Person("3","Rajesh")
persons[3]=p3
var p4 = Person("4","Yogesh")
persons[4]=p4


for(var id in personId){
   var p = persons[id];
   var option = new Option(p.name, p.id);
   select.options[select.options.length] = option;
}

该脚本生成的选择选项是根据 IE9 中的 ID 进行排序的,我需要与其插入的顺序相同。


属性枚举顺序在 ECMAScript 版本 5(撰写本文时的当前版本)及包括版本中未定义,并且在浏览器之间有所不同,因此您不应依赖任何特定的顺序。如果您需要可预测的排序,请使用数组和for or while环形。对于您的示例,一种选择是:

var arr = [
  {rank: "5", name: "John"},
  {rank: "1", name: "Kumar"},
  {rank: "3", name: "Rajesh"},
  {rank: "2", name: "Yogesh"}
];

for (var i = 0; i < arr.length; ++i) alert(arr[i].rank);

最后一点:使用时的枚举顺序for...in不保证任何类型的对象(包括数组)循环,因此您应该始终使用for or while当顺序很重要时。

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

IE9 中的迭代顺序不同 的相关文章

  • Jasmine 条件 callThrough 和 callFake

    我有一个返回函数引用的方法 function methodetobeMoked param case1 return func1 case 2 return func2 case n return funcN 我需要监视这个方法并返回特定输
  • 使用智能菜单jquery打印json

    menu name Computers children name Notebook children name Apple name Windows name Tablets children name Apple name Androi
  • 使用 Javascript 实现 Tinder 风格的拖放手势?

    我正在尝试找出哪些库可以用于仅使用 Javascript 的 Tinder 风格拖放手势 需要创建一个响应拖动手势的 HTML 元素 触摸并按住时 允许元素跟随用户的手指移动 当用户移开手指时 该元素会 动画回到原来的位置 如果元素在释放时
  • Javascript hasOwnProperty 在事件对象上总是 false?

    我希望有人可以帮助澄清与事件对象相关的 hasOwnProperty 方法 我正在尝试克隆鼠标事件 最终该对象将被传递到 iframe 我已经构建了一个 克隆 函数 但每当我尝试克隆窗口事件 即滚动 单击等 时 hasOwnProperty
  • 如何在React-Native中选择ListView的一项?

    我是 React Native 的新手 我想使用 ListView 选择一项 当我第一次按下 item 时 ListView renderRow 被调用 但终究不起作用 我该如何修复这个错误 我的问题出在哪里 我写了一个演示here htt
  • Javascript 自时间戳以来经过的时间

    我试图通过将其存储在变量中来 缓存 一些信息 如果 2 分钟过去了 我想获取 实时 值 调用 url 如果 2 分钟还没有过去 我想从变量中获取数据 我基本上想要的是 if time passed is less than 2 minute
  • 使用 Charts.js 禁用动画

    我在使用 Charts js 关闭动画时遇到一些问题 这是我的代码 var pieData value 30 color F38630 value 50 color E0E4CC value 100 color 69D2E7 var myP
  • 为什么我的箭头函数有原型属性?

    正如文档中提到的https developer mozilla org en docs Web JavaScript Reference Functions Arrow functions https developer mozilla o
  • 如何在Javascript中声明静态变量[重复]

    这个问题在这里已经有答案了 在下面的代码中 我希望有一个计数器来跟踪创建的 Person 对象的数量 这段代码没有这样做 我该如何实现呢 function Person this name Peter this counter this c
  • 如何获得相对于特定父级的偏移量?

    我想获取元素相对于的偏移量特定的父母不是直接的 也不是文档 我在互联网上查找并找到了offset http api jquery com offset and position http api jquery com position jQ
  • 将其作为参数传递给 addEventListener()

    我想添加change一组复选框的事件 我如何访问this在我的事件函数中 这样当我执行事件时我可以访问复选框的值 这是我当前的代码 var checkboxes document getElementsByClassName cb Arra
  • Javascript“命名空间”和 jQuery AJAX

    我正在使用此处列出的建议 http www odetocode com articles 473 aspx http www odetocode com articles 473 aspx 使用模拟的JavaScript AJAX网络聊天系
  • React JS“this”没有按预期工作

    我有下面的代码 save function var this this console log this refs itemText this setState isEditing false function console log In
  • 标记内的值发生变化时调用函数

    JavaScript 有没有什么方法可以在段落标记的值更改时调用函数 概述 HTML p 00 00 p
  • 如何从Web JavaScript应用程序获取桌面C#程序中的变量

    我遇到一个问题 有两个应用程序 一种是 C 中的桌面应用程序 另一种是 javascript 中的 Web 应用程序 运行桌面应用程序中的一些变量或信息需要传输到Web应用程序 有谁知道如何解决这个问题 有人愿意提供更多细节来解决这个问题吗
  • Webpack:如何将 javascript 注入 HTML 而不是单独的 JS 文件

    有没有办法让 webpack 将输出注入 HTML 而不是单独的文件 我不得不使用html webpack inline source plugin https github com DustinJackson html webpack i
  • 谷歌浏览器如何启动桌面应用程序?

    我真的不知道术语 所以我将从一个例子开始 如果我点击磁力链接 Google Chrome 会询问我是否要启动 torrent 客户端 我单击 确定 chrome 启动该应用程序 该应用程序根据链接执行一些操作 现在有办法查看应用程序如何从
  • 如何与使用 child_process.spawn 创建的新创建的服务器交互

    我正在尝试为我的私人托管的 反恐精英全球攻势 服务器制作一个前端 当我点击运行服务器时 在前端 一切正常 服务器启动并记录到控制台 但是如何查看服务器IP地址 服务器中的玩家等信息呢 这是我到目前为止运行服务器的内容 router post
  • 检测图像是否损坏或损坏

    我需要以编程方式检查用户在我的应用程序上选择作为壁纸的图像是否已损坏或损坏 基本上我为用户提供了选择自己的图像作为壁纸的选项 现在 当图像加载时 我只想检查它是否已损坏 如果您正在寻找 PHP 解决方案而不是 javascript 解决方案
  • 使用 Three.js 中的设备方向控件进行对象旋转

    我正在迈出使用 JavaScript 进行编码并使用 Three js 的第一步 我正在尝试 Threejs org 的这个例子 http trijs org examples misc controls deviceorientation

随机推荐

  • Excel VBA:具有不同文件扩展名的 SaveCopyAs

    我有一个扩展名为 xlsb 的 Excel 文件 并使用其宏根据内容生成其他几个 Excel 工作表 宏的工作方式是更改原始 Excel 文件 然后使用SaveCopyAs方法保存生成的 Excel 工作表 生成的 Excel 工作表应以
  • 发布时如何设置ASPNETCORE_ENVIRONMENT?

    我有几个 WebDeploy 发布配置文件 可将我的 NET Core Web 项目部署到各个位置 开发 QA IIS 上的阶段 为了让应用程序知道它在哪里运行 我需要设置 ASPNETCORE ENVIRONMENT 环境变量 是否可以在
  • 来自特定麦克风的 Web Audio Api 输入

    我正在使用 Web Audio Api navigator getUserMedia audio true function function 进行音频录制 如果用户有多个麦克风设备 我可以选择所需的录音设备吗 我遇到过一个有问题的情况 一
  • 在 sed 中使用美元符号进行变量替换和字符

    我尝试使用 sed 更改名为 fusion gnu 的文件中的一行 我有一个名为lafila 这是一个文件名 目前 我可以这样做 lafila nGas060 dat sed i 6s plot lafila using 1 2 with
  • 即时应用程序模块在另一个非基本模块中搜索资源

    我正在开发一个即时应用程序 它有base模块和 2 个功能模块 feature1 and feature2 当我尝试启动时遇到奇怪的崩溃feature2活动 java lang RuntimeException Unable to star
  • x86除法异常-返回地址

    当尝试在 x86 程序集中为引导加载程序编写一些例程时 我遇到了一个错误 当发生除法错误时 程序将陷入无限循环 通过调查 我发现调用 int 0 会正常通过异常处理程序 然后继续执行程序的其余部分 我自己为 x86 编写了异常处理程序 发生
  • 如何访问 GroupPrincipal 对象上的注释字段

    我使用查询特定域中的所有安全组 PrincipalSearchResult
  • 在批处理文件的参数中转义“、<、>、>> 或 | 等字符

    尝试做 fake command bat ping n 4 w 1 127 0 0 1 gt NUL and fake command bat ping n 4 w 1 127 0 0 1 批处理文件可能如下所示 echo 它应该返回 pi
  • T-SQL BETWEEN 问题最大值优先

    为什么这两个表达式返回不同的结果 这实在是太愚蠢了 SELECT FROM Table WHERE ID BETWEEN 3 AND 1 SELECT FROM Table WHERE ID BETWEEN 1 AND 3 As the 文
  • OpenCV检测人脸特征点(耳朵-下巴-耳朵线)

    我正在寻找一个opencv函数 在python中 检测人脸上的左耳 下巴 右耳线 看起来像抛物线 有没有某种 haarcascade 来做这项工作 我已经知道正面或眼睛的轮廓 但我正在寻找更精确的东西 您正在寻找的称为面部标志检测 您可以尝
  • 使用 Nimbus Look And Feel 时无法在 JTextArea 背景上绘制图像

    我正在绘制图像JTextArea背景 它是使用其他外观和感觉 金属 Windows 等 绘制的 但是当我使用Nimbus外观和感觉它不绘制图像可能是什么问题以及如何解决该问题 这是我正在使用的代码 图片文本区域类 public class
  • 如何在opencv中应用三点三角形渐变?

    假设我们有一个 Delaunay 三角剖分这个 产生于fillConvexPoly on getVoronoiFacetList 里面有三角形 可以通过以下方式获得getTriangleList 我想画德劳内三角剖分 就像它是由三角形组成的
  • 全局变量与局部变量的性能

    我对 Python 还是个新手 并且一直在努力提高 Python 脚本的性能 因此我在使用和不使用全局变量的情况下对其进行了测试 我对它进行了计时 令我惊讶的是 使用声明的全局变量而不是将局部变量传递给函数 它运行得更快 这是怎么回事 我认
  • uWSGI+Flask+boto——线程安全

    假设我有一个 Flask 应用程序 由 uWSGI 使用多个进程提供服务 例如 uwsgi socket 127 0 0 1 3031 file flaskapp py callable app processes 4 我的 Flask 应
  • Retrofit 和 RxJava:如何组合两个请求并访问两个结果?

    我需要提出两个服务请求并将其结果合并 服务 gt id 1 name title id 1 name title 服务B id gt field value field1 value 目前 我已成功合并结果 但我需要通过id作为参数Serv
  • 无法读取环境变量

    我有一个简单的 Symfony 项目 使用 symfony dotenv 4 3 in the composer json并尝试读取环境变量的值 这是我的命令 var dump ENV MY NEW VAR 这是我的 env file MY
  • 费马素性测试的实现

    谁愿意帮我做作业 我正在尝试实施费马素性测试在 Java 中使用 BigIntegers 我的实现如下 但不幸的是它不起作用 有任何想法吗 public static boolean checkPrime BigInteger n int
  • Matlab - 将变量分组并输出组索引的命令

    我有一个向量 例如 a 1 1 2 2 7 7 7 10 10 10 10 11 15 它可以是未排序的 但在这里我将其写为已排序的 我正在寻找一个Matlab命令 将上面的内容转换为 1 1 2 2 3 3 3 3 4 4 4 4 5 6
  • MSVC:C ++ 14:std:set:比较函数:为什么需要“const”?

    示例代码 include
  • IE9 中的迭代顺序不同

    在 IE9 中 对象属性的数字键是排序的 这导致 IE9 中的迭代顺序与 IE8 不同 在 IE8 中插入时保留顺序 var obj 5 John 1 Kumar 3 Rajesh 2 Yogesh for var key in obj a