如何在 JavaScript 中迭代数组并删除元素[重复]

2023-12-29

我有一个元素数组,需要从中删除某些元素。问题是 JavaScript 似乎没有 foreach 循环,如果我使用 for 循环,我会遇到问题,它基本上试图检查超出数组边界的元素,或者由于索引更改而丢失数组中的元素。让我告诉你我的意思:

var elements = [1, 5, 5, 3, 5, 2, 4];
for(var i = 0; i < elements.length; i++){
    if(elements[i] == 5){
        elements.splice(i, 1);
    }
}

问题是当 elements[1] 被移除时, elements[2] 就变成了 elements[1]。所以第一个问题是某些元素从未被检查过。另一个问题是 .length 发生变化,如果我对边界进行硬编码,那么我可能会尝试检查超出数组边界的元素。那么完成这个极其简单的事情的最佳方法是什么?


从顶部开始!

var elements = [1, 5, 5, 3, 5, 2, 4];
for(var i = elements.length - 1; i >= 0; i--){
    if(elements[i] == 5){
        elements.splice(i, 1);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 JavaScript 中迭代数组并删除元素[重复] 的相关文章

随机推荐

  • 无法在 PowerShell 中将字符串转换为 int

    我正在尝试使用 PowerShell 将字符串转换为整数 然而 它不断告诉我 我没有有效的号码 尽管我确信我有 首先 这是我如何获取变量以及类型的打印输出等 以确保有效性 obj New Object TypeName PSCustomOb
  • 如何使用SQL Server 2008 Reporting Services的WebService

    我创建了一个报表并将其发布到 Report Server 2008 效果很好 我可以打电话http 服务器名称 81 报告在我的浏览器中查看并导出报告 我现在想做的是编写一个应用程序 使用该报告创建一个 Excel 文件 根据 Report
  • 如何根据第一个下拉列表的选择更新第二个下拉列表?

    我有两个 DropDownListFor 助手 第二个的 SelectList 取决于第一个助手中选择的值 因此 我需要做的是 当用户从第一个 DropDownListFor 帮助器中选择一个值时 必须使用正确的值更新第二个 DropDow
  • WPF Button.IsCancel 属性如何工作?

    取消按钮背后的基本思想是通过 Escape 按键关闭窗口 您可以设置 IsCancel 属性 取消按钮设置为 true 导致 取消按钮自动关闭 对话框不处理 Click 事件 来源 WPF 编程 Griffith 销售 所以这应该有效
  • Rails 3 中的类表继承

    我目前正在开发一个 Rails 3 应用程序 它看起来可能需要对几个模型使用类表继承 这是正在发生的事情的一个简化示例 我有一个名为 Person 的类 具有诸如姓名 电子邮件 密码之类的通用属性 这些属性对于应用程序中的所有类型的人来说都
  • Mysql 两个日期时间列之间

    我有以下代码 但它似乎没有产生预期的结果 date from 2012 04 27 18 19 33 date to 2012 05 29 00 59 57 database gt connect ancestors mysql query
  • 想要手动发送SYN ACK数据包来建立TCP连接(如果可能的话在PHP中)

    如何在 php ini 中将自己的 SYN 和 ACK 数据包发送到服务器 我不想让系统做任何事情 我想创建自己的数据包 并自己发送它们以建立 TCP 连接 这可以在 php 中完成吗 或者我是否必须使用 C 来完成此操作 或者可能是 py
  • ForwardRef 警告 React-hook-forms 与 Material UI TextField

    我正在尝试使用 React hook forms 和 Material UI 的输入构建一个表单 在本例中是我的 TextField 的自定义变体 尽管该表单似乎工作完全正常 但在渲染表单时它会在控制台中触发警告消息 警告 不能给函数组件提
  • 在开发模式之外调试 GWT 应用程序?

    我似乎记得在截屏视频中看到有人将 Java 调试器附加到已编译 部署的 GWT 应用程序 这可能吗 我发现一些关于配置一个特殊的 调试模块 来扩展常规模块的稀疏提及 但细节很少 Thanks 您可以使用开发模式来调试已部署的应用程序 但您将
  • Ipython 笔记本:导入脚本函数的名称错误

    我有两个脚本sources py and nest py 他们是这样的 来源 py import numpy as np from nest import def make source rest of the code def detec
  • 如何使当前片段保持在屏幕旋转上

    我试图在一项活动中使用 3 个片段 其中一个片段被设置为默认片段onCreate 方法和其他片段正在通过某些操作进行调用 因此当我旋转屏幕时onCreate 方法再次调用 我当前的片段丢失 默认片段再次开始 但我必须在onCreate 方法
  • 写入csv文件 - python 3.7

    在此输入图像描述 https i stack imgur com xu0F8 png在此输入图像描述 https i stack imgur com uxN1W png在此输入图像描述 https i stack imgur com 0r0
  • 日期减去秒总是返回相同的[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 echo date Y m d H m s strtotime 15 minutes ago br echo date Y m d
  • 在 Qt 中显示解码视频帧的最有效方法是什么?

    将图像显示到 Qt 小部件的最快方法是什么 我已经使用 libavformat 和 libavcodec 解码了视频 因此我已经有了原始 RGB 或 YCbCr 4 2 0 帧 我目前正在使用 QGraphicsView 和包含 QGrap
  • 如何在单击时将 href 设置为复选框?

    1 如何在单击时将 href 设置为复选框 a href Demo sense show 4 a
  • 使用 post-receive 挂钩创建 zip

    我已经玩 Hooks有一段时间了 但我似乎无法理解post receivehook 以我需要的方式工作 我正在尝试获取post receive在我将更改推送到存储库后 创建一个 zip 文件夹并将其放置在 git 存储库文件夹之外的某个位置
  • 在 emacs 中定义键绑定

    我想将 emacs 中的命令映射到键绑定 我想要命令Control l与命令具有相同的效果Alt x goto line随后是一个返回 因为该命令首先需要调用一个返回 然后是一个行号 我修改了init文件如下 define key M x
  • Xamarin Forms、Sqlite、EF Core 3、迁移和许多混乱

    我有一个 Xamarin Forms 应用程序 我已从仅使用 Restful API 切换为使用本地 SQLite DB 它将使用此进行同步Dotmim Sync 数据库同步框架 https mimetis github io Dotmim
  • 原子基团和非捕获基团有什么区别?

    什么是原子团 gt expr 以及它的用途是什么 在https www regular expressions info atomic html https www regular expressions info atomic html
  • 如何在 JavaScript 中迭代数组并删除元素[重复]

    这个问题在这里已经有答案了 我有一个元素数组 需要从中删除某些元素 问题是 JavaScript 似乎没有 foreach 循环 如果我使用 for 循环 我会遇到问题 它基本上试图检查超出数组边界的元素 或者由于索引更改而丢失数组中的元素