javascript删除数组,索引出现问题解决办法。
var data = [
{ isRemove: 0, name: "项目1" },
{ isRemove: 1, name: "项目2" },
{ isRemove: 1, name: "项目3" },
{ isRemove: 0, name: "项目4" },
{ isRemove: 0, name: "项目5" },
{ isRemove: 0, name: "项目6" },
{ isRemove: 1, name: "项目7" },
{ isRemove: 1, name: "项目8" }
];
需求是我们要删除isRemove=1的项目。
有两种解决方案:
1、把有效的元素push进新数组 。
var newArray=[];
for (var i = 0; i < data.length; i++) {
if(data[i].isRemove==0){
newArray.push(data[i]);
}
}
console.log(newArray);
2、用逆向循环。
for (var i = data.length - 1; i >= 0; i--) {
if (data[i].isRemove==1) {
data.splice(i, 1);
}
}
再推荐一个高效的写法:
var i = data.length;
while (i--) {
if (data[i].isRemove==1) {
data.splice(i, 1);
}
}
如果这篇文章对您有帮助,您可以打赏我

技术交流QQ群:15129679
javascript删除数组,索引出现问题解决办法。的更多相关文章
- JavaScript获取数组索引
JavaScript获取数组索引: <!DOCTYPE html> <html> <head> <meta charset="utf-8" ...
- Javascript删除数组里的某个元素
删除array数组中的某个元素,首先需要确定需要删除元素的索引值. ? 1 2 3 4 5 6 7 var arr=[1,5,6,12,453,324]; function indexOf(val){ ...
- javascript删除数组元素的7个方法
在JavaScript中,除了Object之外,Array类型(数组)恐怕就是最常用的类型了.与其他语言的数组相比,JavaScript中的Array非常灵活.这种灵活性有利有弊,好处是其富有创造性, ...
- javascript删除数组里的对象
Array.prototype.del = function(value) { //删除数组中指定的元素,返回新数组 function hasValue(array, value) { for(var ...
- JavaScript删除数组重复元素的5个高效算法
之前一段时间一直在准备面试, 因而博客太久没更新: 现在基本知识点都复习完毕, 接下来就分享下 面试的一些常见问题: 去正规的互联网公司笔试.面试有很大的概率会碰到 使用javascript实现数组去 ...
- javascript删除数组某个元素
1.首先可以给js的数组对象定义一个函数,用于查找指定的元素在数组中的位置,即索引 Array.prototype.indexOf = function(val) { for (var i = 0; ...
- JavaScript 删除数组重复元素
unique :function (array){ var n = {}, r = [], len = array.length, val, type; for (var i = 0; i < ...
- Javascript删除数组中指定值的元素
Array.prototype.remove = function(index){ if(isNaN(index) || index > this.length){return false;} ...
- JavaScript 删除数组中的对象
1.获得对象在数组中的下标 function (_arr,_obj) { var len = _arr.length; for(var i = 0; i < len; i++){ if(_arr ...
随机推荐
- PHP中嵌套函数被调用时出现报错的问题
对于初入门的PHP新手来说,在学习关于PHP函数嵌套的知识点时可能会有一定的难度.比如有的朋友在练习PHP函数嵌套相关问题时,会遇到调用内部函数时就会出现报错的情况等. 那么本篇文章就为大家详细得分析 ...
- hdu3530 双单调队列的维护
单调队列有部分堆的功能,但其只能维护给定区间中比v大的值或者比v小的值,且其一般存储元素的下标. 思路:两个单调队列维护最大值与最小值的下标,如果区间的最大值最小值之差大于给定范围,则选择队首靠左的删 ...
- ubuntu 12.04 安装 openssh-server 失败,请问怎么该弄?
$ sudo apt-get install openssh-server Reading package lists... Done Building dependency tree Reading ...
- 去除HTML5 SUMMARY 标签前的三角形
在CSS添加如下代码(Chrome): details summary::-webkit-details-marker { display:none; }
- ***腾讯云直播(含微信小程序直播)研究资料汇总-原创
这段时间抽空研究了下直播技术,综合比较了下腾讯云直播的技术和文档方面最齐全,现把一些技术资料和文档归集如下: 1.微信小程序移动直播入门导读 https://cloud.tencent.com/doc ...
- hdu 1879 有的边已存在 (MST)
Sample Input31 2 1 0 //u v w 是否已建 1 3 2 02 3 4 031 2 1 01 3 2 02 3 4 131 2 1 01 3 2 12 3 4 10 Sample ...
- mysql undo 和redo 被误删除的恢复操作(一致性)
今天在群里看到有人说不熟悉innodb把ibdata(数据文件)和ib_logfile(事务日志)文件误删除了.不知道怎么解决.当时我也不知道怎么办.后来查阅相关资料.终找到解决方法.其实恢复也挺简单 ...
- 【转载-译文】requests库连接池说明
转译自:https://laike9m.com/blog/requests-secret-pool_connections-and-pool_maxsize,89/ Requests' secret: ...
- 转载 c++指针 指针入门
这是一篇我所见过的关于指针的最好的入门级文章,它可使初学者在很短的时间内掌握复杂的指针操作.虽然,现在的Java.C#等语言已经取消了指针,但作为一个C++程序员,指针的直接操作内存,在数据操作方面有 ...
- 047 大数据下的java client连接JDBC
1.前提 启动hiveserver2服务 url,username,password. 2.官网 3.程序 4.结果 emp的第一列与第二列 5.源程序 package com.cj.it.hiveU ...