js如何一次循环删除数组中的多个元素

news/2024/7/10 0:33:08 标签: js, javascript, vue, 数组, 穿梭框

思路: 数组遍历删除一个元素很容易,通过splice方法删除对应索引的元素即可,但是遍历删除多个元素就复杂了很多,首先不能按索引从小到大的顺序删除,这样可能会导致索引对应的元素发生变化,误删或找不到该索引对应的元素。那如何做到呢?

示例

下面的示例即实现了一次循环删除多个元素,又实现了将删除的元素合并到新的数组

javascript hljs ">js-keyword">let leftData = [js-number">1,js-number">2,js-number">3,js-number">4,js-number">5]  js-comment">//原数组
js-keyword">let targetKeys = [js-number">3,js-number">5]  js-comment">//要删除的元素
js-keyword">let rightData = [js-number">6,js-number">7]   js-comment">//最终需要的数组
js-keyword">let leg = js-keyword">this.leftData.length
js-keyword">for (js-keyword">let i = leg - js-number">1; i >= js-number">0; i--) {
    js-keyword">for (js-keyword">let j = js-number">0; j < targetKeys.length; j++) {
        js-keyword">if (leftData[i]) {
            js-keyword">if (leftData[i] == targetKeys[j]) {
                rightData.push(leftData[i])
                leftData.splice(i, js-number">1)
                js-keyword">continue; js-comment">//结束当前本轮循环,开始新的一轮循环
            }
        }
    }
}

用途

可以实现穿梭框功能。
<a class=穿梭框的实现" title="" />


http://www.niftyadmin.cn/n/1581275.html

相关文章

非生活深刻感知

有好一段时间没有上来看看了&#xff0c;荒废了&#xff0c;本想说因为忙&#xff0c;但是立刻就被自己否定了&#xff0c;其实忙也只是个借口罢了。post没有更新多少&#xff0c;却发现留言确实有增无减&#xff0c;还有好心人提醒我再不更新就要从top 100中出名了&#xff0c…

nodejs基础篇(一)

我从2017年开始接触nodejs&#xff0c;到现在用了一年多了&#xff0c;觉得我有必要写点东西出来&#xff0c;记录自己的积累的知识体系&#xff0c;以便更好的掌握nodejs。 nodejs专题不是按照严格的学习历程书写&#xff0c;纯属个人划分的等级。 认识AMD、UMD、CommonJS A…

再议ASP.NET DataGrid控件中的“添加新行”功能

在园子里搜索了一下&#xff0c;发现不管是panchengyong的“在DataGrid快速添加新行(c#) ”还是piccolo的”在DataGrid快速添加新行“&#xff0c;都只是简单的实现了添加新行&#xff0c;功能上还是有改进的余地。说起在DataGrid中添加新行&#xff0c;ASP.NET开发的大牛人物&…

浅谈ES6的Promise对象

相信凡是写过javascript的童鞋也一定都写过回调方法&#xff08;callback&#xff09;&#xff0c;简单说回调方法就是将一个方法func2作为参数传入另一个方法func1中&#xff0c;当func1执行到某一步或者满足某种条件的时候才执行传入的参数func2&#xff0c;例如下面的代码段…

Open Relay 测试链接

1.Anonymous Relay Test[url]http://www.antispam-ufrj.pads.ufrj.br/test-relay.html[/url]2.[url]http://abuse.net/relay.html[/url]3.检查邮件服务器是否列入RBL名单:[url]http://openrbl.org/[/url]

node版本管理器——nvm

nvm是管理node版本的一个工具&#xff0c;具体介绍不再赘述&#xff0c;请到GitHub&#xff08;https://github.com/creationix/nvm&#xff09;查看。 安装 Linux / Mac curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash 或 wge…

LINQ篇:查询句法[转]

查询句法是使用标准的LINQ查询运算符来表达查询时一个方便的声明式简化写法。该句法能在代码里表达查询时增进可读性和简洁性&#xff0c;读起来容易&#xff0c;也容易让人写对。Visual Studio 对查询句法提供了完整的intellisense和编译时检查支持。 在底下&#xff0c;C#和V…

centos下修改mysql默认端口

mysql5.6安装&#xff1a; wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm rpm -ivh mysql-community-release-el7-5.noarch.rpm yum -y install mysql mysql-server 默认mysql配置文件位于/etc/my.cnf 在my.cnf中添加 port<yourport> …