javascript - 如何从数组中删除满足条件的元素

标签 javascript

我想删除满足条件的json元素。为此,我使用了给定的代码

var index = -1;
for (var i = 0; i < data.dashLayout.dashlets.length; i++) {
  if (data.dashLayout.dashlets[i].rowNo == selectedrowno) {
    if (index == -1 || data.dashLayout.dashlets[i].rowNo < data.dashLayout.dashlets[index].rowNo) {
      index = i;
    }
  }
if (index != -1) {
       data.dashLayout.dashlets.splice(index, 1);
    }
}

但是迭代尚未完成,因为 data.dashLayout.dashlets.length 随着拼接而减小。我该如何解决这个问题?我想删除所有满足条件的项目。请帮忙

最佳答案

另外两种解决方案

var a = [2,5,8,13,9,1,4,8,10], l = a.length, c = 5;

// using reverse loop
while(l--){
    if(a[l] < c) a.splice(l, 1);
}

// using filter 
var b = a.filter(function(e, c) {
    return --e > c;
});

console.log(a); // [5, 8, 13, 9, 8, 10]  
console.log(b); // [5, 8, 13, 9, 8, 10]

关于javascript - 如何从数组中删除满足条件的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24837039/

相关文章:

javascript - jQuery 在页面加载时触发并绑定(bind)到事件?

javascript - JS中如何访问父类(super class)的super?

javascript - 如何在 HighChart 中默认关闭某些指定的系列?

javascript - 点击浏览器后退按钮时如何刷新 ASP .NET MVC 页面

javascript - 撤消 JavaScript 中的所有鼠标事件处理程序?

javascript - 需要用于 ASP.NET 的良好 HTML 内容编辑器

javascript - 为什么 For 循环不能使用 keyup 函数在 javascript 中工作?

javascript - 如何添加关闭按钮脚本

Javascript 菜单从底部跳到顶部而不是滚动

javascript - Bootstrap 轮播中的四个项目 Ng 重复?