javascript - 无法使用 Javascript/Jquery 从数组中删除行

标签 javascript jquery arrays

我需要一个帮助。我需要使用 JavaScript 根据某些条件从数组中删除行。我在下面解释我的代码:

var arr = [{
        'value': '',
        'name': 'Rajeev'
      }, {
        'value': '1',
        'name': 'Raj'
      }, {
        'value': '',
        'name': 'Ram'
      }];


for(var i=0;i<arr.length;i++){
    if(arr[i]['value']==''){
       arr.splice(i,1);
    }
}

在删除任何值后,数组索引会发生变化,因此无法在每种情况下都正确删除。我需要删除 value =='' 的行。请帮助我。

最佳答案

您可以从末尾开始迭代,因为 Array#splice减少数组的长度。

在您的代码中,如果进行拼接,则必须将索引保持在相同索引,而不增加。

for (var i = arr.length - 1; i >= 0; i--){
    if (arr[i]['value'] == '') {
       arr.splice(i, 1);
    }
}

关于javascript - 无法使用 Javascript/Jquery 从数组中删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41805732/

相关文章:

javascript - 为什么没有调用 "focusin"事件处理程序?

javascript - <time> 元素中的日期时间属性

javascript - 如何在非常快速地发出大量请求时修复 "Socket Hangup Error "

javascript - 图像发布受限图像的最佳实践

javascript - 不存在的奇怪的意外 token

javascript - 点击新按钮数量的计数器(HTML/Javascript)

c - 如何在数组中编写函数

javascript - 使用 Array.prototype.includes 定位对象数组中的属性

javascript - 回调值中的 Angular 2 函数不更新 View

javascript - 通过单击按钮显示 JSON