按键对数组排序 OR:为什么我的 for 循环执行无序?

2024-06-28

我有一个对象数组,需要根据某些配置数据按一定顺序放置。我在以正确的顺序遍历数组时遇到问题。我认为如果我创建了数组,然后使用 for 循环单步执行,我将能够正确执行代码。它工作得很好,除了在一个用例中,我将第四个项目添加到数组中,然后返回到第三个项目。

links[0] = foo
links[1] = bar
links[2] = foobar
links[3] = a_herring
links[4] = a_shrubery

order = [] //loaded from JSON, works has the numbers 1 2 3 or 4 as values
           //in this case:
order[0] = 1
order[1] = 2
order[2] = 4
order[3] = false
order[4] = 3

for(x in order){        
   if(order[x]){
    printOrder[order[x]]=links[x]
    //remember that in this case order[0] would
}

这应该给我一个如下所示的数组:

//var printOrder[undefined,foo,bar,a_shrubbery,foobar]

但是当我尝试遍历数组时:

    for(x in printOrder){
        printOrder[x].link.appendChild(printOrder[x].image)
        printOrder[x].appendChild(printOrder[x].link)
        printOrder[x].appendChild(printOrder[x].text)
        document.getElementById("myDiv").appendChild(printOrder[x]);
    }

I get foo, bar, foobar, a_shrubbery作为输出。

我需要按键值对这个数组进行排序,或者以正确的顺序逐步执行它。


迭代 Array 实例的数字索引属性应始终使用数字索引来完成:

for (var x = 0; x < printOrder.length; ++x) {
  // whatever with printOrder[x]
}

正如您所看到的,使用“for ... in”形式的语句不会让您获得可预测的顺序,而且它还会产生其他奇怪的效果(特别是当您混合使用 JavaScript 框架或工具库或其他内容时)。它用于迭代对象的属性名称,并且不会特殊对待 Array 实例。

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

按键对数组排序 OR:为什么我的 for 循环执行无序? 的相关文章

  • 工厂函数方法不更新变量

    我正在尝试设置一个工厂函数 该函数将更新所述工厂函数中特定变量的值 这看起来实现起来很简单 但是 每当我测试它时 我都会得到变量的原始设置值 而不是更新后的值 我确信在范围界定方面我缺少一些细微差别 但这里到底发生了什么 const fac
  • 如果用户禁用了 javascript,如何回退到完全不同的索引页面?

    我有一个大型 动态生成的单页网站 该网站严重依赖 javascript 我想为没有 javascript 的人提供后备 每个版本必须有不同的 php 代码 所以基本上我需要一个完全不同的索引页面 我不想将所有内容都包装在 javascrip
  • 无法加载资源:服务器在已部署的 React.js 项目中响应状态为 404(未找到)

    当我将 React 项目部署到 Surge 中时 构建成功并且可以获取应用程序 URL 但是当我链接到 URL 时 我可以在检查控制台中看到一个空白页面和一些错误 Failed to load resource the server res
  • 请使用同一按钮播放和暂停音频

    我有这段代码并且只是播放 但我想使用相同的按钮 图像 播放和暂停 并且我不知道我需要添加什么 我需要做什么 请帮帮我
  • 如何告诉 Sonar 使用我的可靠报告来获取单元测试结果

    我们有一个 Jenkins 作业 其中包含一堆 javascript 文件 我们通过 grunt 构建项目 并在构建结束时运行 JSCover 来运行单元测试并收集代码覆盖率 这一切都有效 我们得到了一个不错的 LCOV 文件 并且在 ta
  • 切换 Ag-Grid 中的浮动过滤器?

    我试图通过开关或按钮单击来确定浮动过滤器的显示 看起来很简单 我应该能够在 true 和 false 之间切换 将该值提供给网格选项中的浮动过滤器 然后刷新标题 对吗 不幸的是 网格似乎总是落后一步 当我第一次点击时 什么也没有发生 当我将
  • 如何让机器人状态显示为“手机在线”

    我看到 NotSoBot 的状态为在线在移动 https i stack imgur com IiF4k png 有没有办法可以在discord js 中做到这一点 我知道这已经很旧了 但更简单的方法是将其添加到定义客户端 机器人的位置 c
  • Django 管理中的自定义依赖下拉菜单

    我有一个按阶段模型的项目外键 我很难在 Django 管理页面中创建依赖的下拉列表 我想当用户从该项目的 项目下拉 阶段选择一个项目时 在第二个下拉菜单中显示 实现这一目标的最佳方法是什么 如果下拉列表根据其父级的值来过滤项目 那就太好了
  • 链接index.html client.js 和 server.js

    我从 Node js 开始 我的第一个程序已经遇到了问题 下面是我正在使用的代码 索引 html
  • Chrome 扩展程序导致 DOM 闪烁,该扩展程序会在页面加载之前删除 DOM 元素

    我正在编写一个 chrome 扩展 我想在页面加载之前删除内容 例如this http tech blog tomchambers me 2016 01 13 How to write a simple page rewriting Chr
  • td 内的文本可以随 td 一起调整大小吗? (是其高度的百分比?)

    我有一个 100 占屏幕的表格 里面有 3x3 9 个单元格 每个单元格占 33 到目前为止 一切都很好 这是一个干净 可扩展的井字棋游戏 问题在于 TD 内的文本不会随比例缩放 有没有办法说 我希望文本大小为 TD 高度的 30 或者其他
  • 纯 JavaScript 工具提示

    我正在尝试用纯 JavaScript 制作一个工具提示 显示在hover 就像 Stack Overflow 中将鼠标悬停在个人资料名称 a 上一样div显示 我尝试使用onmouseover onmouseout并添加了setTimeou
  • Netlify 正在显示我的 Gatsby 网站的 html 版本

    网站建设位于https 5efbc255ca51be00080b5219 epic raman 086510 netlify app https 5efbc255ca51be00080b5219 epic raman 086510 netl
  • 带搜索框的 D3 图表

    我在 D3 中创建了一个图表 其中节点显示特定个人创建文档的时间 该图表还显示了一个搜索框 该搜索框根据搜索框输入是否与与该文档关联的单词匹配而将节点变成红色 这些单词列在数据集的第 5 列中 请参阅下面的数据集 我的问题 一旦将搜索输入到
  • Javascript 或 Coffeescript 中的“Bucket Fill”算法

    我正在编写一个小coffeescript js应用程序 允许用户设计图标 16x16像素或32X32像素 该图标实际上是一个带有颜色单元的二维数组 单元格可以有颜色或为空 我希望用户能够使用 桶油漆 工具填充空白单元格 代表着 如果用户单击
  • 将 html

    我有一些服务器端代码当前支持 http 字节范围请求 没有任何问题 但是 我希望能够在将转码后的块发送到客户端之前使用 ffmpeg 即时转码视频文件 位于磁盘上 但 ffmpeg 要求我在获取字节时给它一个寻道时间范围来自客户 给定客户端
  • 当 JavaScript 抛出异常时不要停止它

    我正在使用 JavaScript 编写一个 Windows 边栏小工具 现在我想捕获所有 JavaScript 异常并将其记录到文本文件中 一个问题是 当任何一行抛出异常时 下一行将不会被执行 是否可以自动捕获异常 以便执行以下 JavaS
  • jQuery:array[i].children() 不是函数

    以下代码的灵感来自http ignorethecode net blog 2010 04 20 footnotes http ignorethecode net blog 2010 04 20 footnotes 当您将光标移到脚注符号上时
  • 事件监听器如何/何时附加到 d3.js 中?

    我正在尝试制作一个 SVG 编辑器 长话短说 我需要将鼠标事件附加到
  • 如何防止外部 CSS 添加和覆盖 ReactJS 组件样式

    我有一个自定义的 ReactJS 组件 我想以某种方式设置样式 并将其作为插件提供给许多不同的网站 但是 当网站使用全局样式 Twitter bootstrap 或其他 css 框架 时 它会添加并覆盖我的组件的样式 例如 全局 css l

随机推荐

  • Spring Boot / Kafka Json 反序列化 - 可信包

    我刚刚开始将 Kafka 与 Spring Boot 一起使用 并且想要发送和使用 JSON 对象 当我尝试使用 Kafka 主题中的消息时 出现以下错误 org apache kafka common errors Serializati
  • “在文件中查找”的替代方法

    我已经按照建议解决了 在文件中查找不是 问题here https stackoverflow com questions 4795443 visual studio 2010 find in files not finding files并
  • 从文件中删除字符

    如何删除文件中的任意字符 而不是用某些字符替换 include
  • 将隐藏的 DIV 保存为画布图像

    我使用以下代码将可见内容保存为图像 html2canvas document querySelector specific onrendered function canvas theCanvas canvas Canvas2Image s
  • 使 WTForms 从数据库模型设置字段标签

    我有三张桌子 成分 属性 and 属性值 每个组件可以有多个属性值 Each 属性值属于一个属性 是的 这就是可怕的 EAV 模式 我创建了这两种形式 class AttributeValueForm Form attribute Hidd
  • 如何使文本框上的自动完成功能在空时显示建议

    我在文本框 实际上是 ToolStripTextBox 上使用 AutoComplete 属性 这工作正常 只是直到我至少输入一个字符才显示 即使文本框为空 如何才能显示建议 Mode Suggest Source CustomSource
  • 如何在 dbplyr 中使用自定义 SQL 函数?

    我想计算数据库中的 Jaro Winkler 字符串距离 如果我将数据带入 R 使用collect 我可以轻松地使用stringdist函数从stringdist包裹 但我的数据非常大 我想过滤 Jaro Winkler 距离before将
  • 在 Ruby 中使用 `module_function` 定义模块函数与使用 `self.` 定义它相同吗?

    正在定义一个模块函数module function与定义它相同self 在鲁比 也就是说 它们是否都会导致实例方法和模块方法的创建 No module M1 def self foo end end module M2 module fun
  • DateTimeOffset 如何处理夏令时?

    我将日程表以星期几 小时和分钟的形式存储在数据库中 当数据被读取时 我们创建一个DateTime对象下一次出现的那一天 一小时和一分钟 但我需要修改它以使其能够感知 DST 如有必要 我可以修改数据库 我知道DateTimeOffset存储
  • For 循环 Bash 中的大数序列[重复]

    这个问题在这里已经有答案了 在 Bash 脚本中 我使用一个简单的 for 循环 如下所示 for i in seq 1 1 500 do echo i done 这个 for 循环工作得很好 但是 当我想使用较大数字的序列 例如 10 8
  • UserPrincipal.FindByIdentity 导致 COM 错误 0x80005000

    我有一个 MVC Intranet 应用程序 最近从 Net 4 升级到 4 6 1 此应用程序从 Active Directory 查询用户详细信息 以加载控制器的 User Identity 属性中不可用的详细信息 并且直到最近才完美地
  • 在 RPM 规范文件中使用 Jenkins BUILD NUMBER

    Name My Software Version 1 0 5 Release 1 Summary This is my software 不确定是否有人以前尝试过这个或者它是否容易 但是 规范文件的版本有两个独特的指示符 版本 指定软件版本
  • 找到给定点的最小面积矩形以计算长轴和短轴长度的算法

    I have a set of points black dots in geographic coordinate value derived from the convex hull blue of a polygon red see
  • 匿名行内框是否包含空格?

    我阅读了 CSS2 1 规范 并在 匿名内嵌框 https www w3 org TR CSS22 visuren html anonymous部分 它显示了一个匿名内联框的示例 如下所示 p Some em emphasized em t
  • TYPO3 - 如何正确定义常量,将其存储到变量中并在流体模板内部使用

    在我正在开发的插件的 Fluid 模板中 有些东西是硬编码的 例如
  • 如何分发 Go 应用?

    我用 Go 编写了一个应用程序 它有两个外部依赖项需要在编译之前满足 在 Go 生态系统中 打包此应用程序以实现简单安装过程 包括安装这些远程依赖项 的最佳方法是什么 用户将如何安装我的应用程序 如果您期望用户编译您的应用程序 并且该应用程
  • 在 CSS 中创建背景图案

    我有以下图片 其中有这个有角度的条纹图案 我想知道如何使用 CSS 作为背景图案来创建这个图案 干杯 英语 编辑 我在代码笔中添加了第二个示例 与已经给出的答案类似 但添加了避免梯度的内容 http codepen io anon pen
  • C++ 优化器是否允许在函数调用之间移动语句?

    Note 这里根本没有多线程 只是优化了单线程代码 函数调用引入一个序列点 https stackoverflow com a 18516712 321013 显然 是否可以得出编译器 如果优化器内联该函数 是not是否允许在函数指令之前
  • 解决方案范围#define

    有没有办法全局声明 define 就像我想要一个文件 例如 define MONO 我希望所有源代码文件都知道这个预处理器指令已定义 我将如何实现这一目标 更新 您不能对 解决方案范围 进行定义 但下面的答案在每个项目的基础上都是可行的 您
  • 按键对数组排序 OR:为什么我的 for 循环执行无序?

    我有一个对象数组 需要根据某些配置数据按一定顺序放置 我在以正确的顺序遍历数组时遇到问题 我认为如果我创建了数组 然后使用 for 循环单步执行 我将能够正确执行代码 它工作得很好 除了在一个用例中 我将第四个项目添加到数组中 然后返回到第