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删除数组,索引出现问题解决办法。的更多相关文章

  1. JavaScript获取数组索引

    JavaScript获取数组索引: <!DOCTYPE html> <html> <head> <meta charset="utf-8" ...

  2. Javascript删除数组里的某个元素

    删除array数组中的某个元素,首先需要确定需要删除元素的索引值. ? 1 2 3 4 5 6 7 var arr=[1,5,6,12,453,324]; function indexOf(val){ ...

  3. javascript删除数组元素的7个方法

    在JavaScript中,除了Object之外,Array类型(数组)恐怕就是最常用的类型了.与其他语言的数组相比,JavaScript中的Array非常灵活.这种灵活性有利有弊,好处是其富有创造性, ...

  4. javascript删除数组里的对象

    Array.prototype.del = function(value) { //删除数组中指定的元素,返回新数组 function hasValue(array, value) { for(var ...

  5. JavaScript删除数组重复元素的5个高效算法

    之前一段时间一直在准备面试, 因而博客太久没更新: 现在基本知识点都复习完毕, 接下来就分享下 面试的一些常见问题: 去正规的互联网公司笔试.面试有很大的概率会碰到 使用javascript实现数组去 ...

  6. javascript删除数组某个元素

    1.首先可以给js的数组对象定义一个函数,用于查找指定的元素在数组中的位置,即索引 Array.prototype.indexOf = function(val) { for (var i = 0; ...

  7. JavaScript 删除数组重复元素

    unique :function (array){ var n = {}, r = [], len = array.length, val, type; for (var i = 0; i < ...

  8. Javascript删除数组中指定值的元素

    Array.prototype.remove = function(index){ if(isNaN(index) || index > this.length){return false;} ...

  9. JavaScript 删除数组中的对象

    1.获得对象在数组中的下标 function (_arr,_obj) { var len = _arr.length; for(var i = 0; i < len; i++){ if(_arr ...

随机推荐

  1. C++ one more time

    写在前面:我们学习程序设计的方法先是模仿,然后举一反三.在自己的知识面还没有铺开到足够解决本领域的问题时,不要将精力过分集中于对全局无足轻重的地方!!! 以下参考钱能老师的<C++程序设计教程 ...

  2. 激活函数--(Sigmoid,tanh,Relu,maxout)

    Question? 激活函数是什么? 激活函数有什么用? 激活函数怎么用? 激活函数有哪几种?各自特点及其使用场景? 1.激活函数 1.1激活函数是什么? 激活函数的主要作用是提供网络的非线性建模能力 ...

  3. cf1104d二分+数学

    #include<bits/stdc++.h> using namespace std; bool ask(int x,int y){ printf("? %d %d\n&quo ...

  4. hdu4768二分答案

    /* 如果发的传单是偶数,那么所有人都收到双数张. 仅考虑发了单数张传单,二分答案x,如果x左边是偶数,那么答案在右侧,如果x左边是奇数,那么答案在左侧 */ #include<iostream ...

  5. docker 运行Django项目

    一.概述 已经写好了一个Django项目,需要将这个项目用docker封装一个镜像,使用k8s发布! 在封装并运行的过程中,发现了很多问题,这里会一一介绍! 二.时区问题 采用的是镜像是 ubuntu ...

  6. POJ 2456 3258 3273 3104 3045(二分搜索-最大化最小值)

    POJ 2456 题意 农夫约翰有N间牛舍排在一条直线上,第i号牛舍在xi的位置,其中有C头牛对牛舍不满意,因此经常相互攻击.需要将这C头牛放在离其他牛尽可能远的牛舍,也就是求最大化最近两头牛之间的距 ...

  7. canvas拖拽效果

    canvas拖拽和平时用的js拖拽是有区别的 普通的js是设置目标为绝对定位,再根据鼠标的移动来改变left和top的值 canvas是获得了鼠标的位置,直接在目标点进行重新绘制 下面给一个简单的拖拽 ...

  8. linux 中的./configuration --prefix=安装路径 的用法(指定源码安装方式的安装路基)

    源码的安装一般由3个步骤组成:配置(configure).编译(make).安装(make install). Configure是一个可执行脚本,它有很多选项,在待安装的源码路径下使用命令./con ...

  9. Linux !的使用

    转自:https://www.linuxidc.com/Linux/2015-05/117774.htm 一.history 78 cd /mnt/ 79 ls 80 cd / 81 history ...

  10. 《Gradle权威指南》--Android Gradle高级自定义

    No1: 指定共享库 <uses-library android:name="com.google.android.maps" android:required=" ...