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 ...
随机推荐
- C++ one more time
写在前面:我们学习程序设计的方法先是模仿,然后举一反三.在自己的知识面还没有铺开到足够解决本领域的问题时,不要将精力过分集中于对全局无足轻重的地方!!! 以下参考钱能老师的<C++程序设计教程 ...
- 激活函数--(Sigmoid,tanh,Relu,maxout)
Question? 激活函数是什么? 激活函数有什么用? 激活函数怎么用? 激活函数有哪几种?各自特点及其使用场景? 1.激活函数 1.1激活函数是什么? 激活函数的主要作用是提供网络的非线性建模能力 ...
- cf1104d二分+数学
#include<bits/stdc++.h> using namespace std; bool ask(int x,int y){ printf("? %d %d\n&quo ...
- hdu4768二分答案
/* 如果发的传单是偶数,那么所有人都收到双数张. 仅考虑发了单数张传单,二分答案x,如果x左边是偶数,那么答案在右侧,如果x左边是奇数,那么答案在左侧 */ #include<iostream ...
- docker 运行Django项目
一.概述 已经写好了一个Django项目,需要将这个项目用docker封装一个镜像,使用k8s发布! 在封装并运行的过程中,发现了很多问题,这里会一一介绍! 二.时区问题 采用的是镜像是 ubuntu ...
- POJ 2456 3258 3273 3104 3045(二分搜索-最大化最小值)
POJ 2456 题意 农夫约翰有N间牛舍排在一条直线上,第i号牛舍在xi的位置,其中有C头牛对牛舍不满意,因此经常相互攻击.需要将这C头牛放在离其他牛尽可能远的牛舍,也就是求最大化最近两头牛之间的距 ...
- canvas拖拽效果
canvas拖拽和平时用的js拖拽是有区别的 普通的js是设置目标为绝对定位,再根据鼠标的移动来改变left和top的值 canvas是获得了鼠标的位置,直接在目标点进行重新绘制 下面给一个简单的拖拽 ...
- linux 中的./configuration --prefix=安装路径 的用法(指定源码安装方式的安装路基)
源码的安装一般由3个步骤组成:配置(configure).编译(make).安装(make install). Configure是一个可执行脚本,它有很多选项,在待安装的源码路径下使用命令./con ...
- Linux !的使用
转自:https://www.linuxidc.com/Linux/2015-05/117774.htm 一.history 78 cd /mnt/ 79 ls 80 cd / 81 history ...
- 《Gradle权威指南》--Android Gradle高级自定义
No1: 指定共享库 <uses-library android:name="com.google.android.maps" android:required=" ...