JavaScript使用for循环和splice删除数组指定元素的注意点
在JavaScript里可以结合for循环和splice来删除数组指定的元素。但是要注意删除元素后,数组索引会发生改变
示例
var arr = ["a","b","c","a",'a',"b"];
var ele = "a";for(var i = 0; i < arr.length; ) {if(arr[i] == ele) {arr.splice(i, 1);} else {i++; //只有在没有删除元素时才对索引 i++}
}
注意点:
- for循环的索引边界应该为动态的,arr.length
- 只有不是被删除元素时才对索引做偏移i++
删除数组多个元素也可以使用filter这种取巧的方式,不需要再原数组上删除元素。
var arr = ["a","b","c","a",'a',"b"];
var ele = "a";
var newarr =arr.filter(function(item){ return item!==ele);
原帖地址https://majing.io/posts/10000006121204
转载于:https://www.cnblogs.com/zjhr/p/9975817.html
JavaScript使用for循环和splice删除数组指定元素的注意点相关推荐
- [Js]删除数组指定元素
写在前面 在最近的项目中,有用到js对数组的操作,之前自己几乎没有用到这种方法,这里就记录一下,算是对学到的东西的一种总结吧. 数组对象splice方法 splice() 方法向/从数组中添加/删除项 ...
- 微信小程序 循环原数组并追加新元素(删除数组指定元素)
今天新get到了一个小技能 push和concat的区别: push 遇到数组参数时,把整个数组参数作为一个元素:而 concat 则是拆开数组参数,一个元素一个元素地加进去. push 直接改变当前 ...
- js删除数组指定元素
前端小记 ES6删除数组中指定元素,例: let array = [1, 2, 3, 4]; 删除2,array.splice(array.findIndex(item => item === ...
- es6 删除数组指定元素
arr.splice(arr.findIndex(item => item.id === id), 1) //item 只是参数可以写成 i 或者 v 都可以 , //后面的额id是数组的id, ...
- JavaScript中for循环shift()方法删除数组中的元素会被跳过或者只能删除部分
shift()方法用于把数组的第一个元素从其中删除,并返回第一个元素的值. https://blog.csdn.net/qq_36279445/article/details/89497007 ht ...
- JavaScript删除数组指定元素
- js 删除数组指定元素的方法
//首先需要找到元素的下标: var arr = [2, 5, 9]; var index = arr.indexOf(5); //使用splice函数进行移除: if (index > -1) ...
- 微信小程序删除数组指定元素
// 删除方法remove: function(array, val) {for (var i = 0; i < array.length; i++) {if (array[i] == val) ...
- java 删除数组指定元素_Java从在数组中删除指定元素
package org.usc.action; import java.util.ArrayList; import java.util.Arrays; import java.util.List; ...
最新文章
- php winform通信,C# Winform 通过Socket实现客户端和服务端TCP通信
- 锐捷linux网卡,CentOS 7安装MentoHUSTt锐捷认证程序
- guzzle 封装api_Wuzzlist API与Guzzle的速成课程
- Hive ANALYZE NOSCAN
- 胜为蓝牙适配器驱动_mac 安装usb 蓝牙适配器 胜为 shengwei UDC-324B
- 使用python爬虫获取大乐透和双色球历史开奖数据储存到excel表中
- python怎么统计单词总数_python统计单词
- 浅谈链表的构建,next到底是什么
- C# winfrom窗体及控件 根据系统的分辨率自动调整位置
- 云原生(三十九) | Kubernetes篇之kustomize入门了解
- WIN10 家庭版 安装DOCKER 遇到问题:THIS COMPUTER DOESN'T HAVE VT-X/AMD-V ENABLED
- 基于idea-SSM的在线投稿审稿系统-稿件管理-作者管理-稿件审核(javaweb-php-asp.netC#-j2ee)
- 【网络安全培训】无线局域网的安全威胁都有哪些?
- 我们应该怎样做需求分析?(一)需求调研
- 【金猿案例展】FPD领域龙头企业某T社——基于ADC的智能质检服务
- win10 下的输入法切换成繁体的问题解决方案
- Deep Learning(深度学习)学习笔记整理系列之常用模型
- 2019年第九届中国教育机器人大赛回顾与总结
- hw11————玩转 Docker 容器技术
- LeetCode——1947. 最大兼容性评分和(Maximum Compatibility Score Sum)[中等]——分析及代码(Java)
热门文章
- 共享单车是如何利用物联网卡实现智能开锁的?
- Apple Watch的对讲机功能使用教程
- 计算机专业转正述职报告,计算机专业述职报告
- linux系统运维核心笔试题-2020年9月1日最新
- 用ARDUNO自制RFID读写器、复旦M1卡初探
- 厂房防静电防雷检测验收 三类建筑物防雷检测 河南万佳防雷验收
- 有3扇门,其中1扇门后有汽车,另两扇门后为山羊。你选择第1扇门后,主持人打开第2扇门,见到山羊。问你这时该不该换选第3扇门?
- TFRecord and tf.Example
- [ 数据通信面试篇 ] 数通面试题大集合(详解),看完直怼面试官(四)
- Ecology8 ecology8流程表单常用js