删除数组中以特定字符串开头的所有项

时间:2013-08-29 18:49:56

标签: javascript jquery

嗨,我想说我在javascript中有这样的数组:

var arr = ["ftp_text_1", "abc_text_2", "ftp_text_3"];

如何从我的数组中以ftp_

开头的所有字符串中删除

由于

4 个答案:

答案 0 :(得分:14)

只需使用 Array.filter

arr = arr.filter(function (item) {
   return item.indexOf("ftp_") !== 0;
});
对于IE9支持,

编辑,您可以使用jQuery.grep

arr = $.grep(arr, function (item) {
   return item.indexOf("ftp_") !== 0;
});

答案 1 :(得分:2)

使用正则表达式:

$.each(arr, function (index, value) {
    if (value.match("^ftp_")) {
        arr.splice(index, 1);
    }
});

答案 2 :(得分:0)

使用temp数组存储所需的字符串。

for(i=0;i<are.length;i+=) {
  if(!arr[i].startesWith('ftp_')){
    temp[j]=arr[i];
    j++:
  }
  arr=temp;
}

答案 3 :(得分:0)

随着元素从列表中删除,元素的索引位置会上移,因此某些元素可能不会从列表中删除。

因此,最佳做法是从末尾删除列表。

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