12

嗨,假设我在 javascript 中有一个这样的数组:

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

如何从我的数组中以开头的所有字符串中删除ftp_

谢谢

4

4 回答 4

20

只需使用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;
});
于 2013-08-29T18:52:04.410 回答
2

使用正则表达式:

$.each(arr, function (index, value) {
    if (value.match("^ftp_")) {
        arr.splice(index, 1);
    }
});
于 2013-08-29T18:51:53.603 回答
1

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

所以最好的做法是从末尾删除列表。

for(var i=arr.length-1 ; i>=0;i--){
   if(arr[i].includes("ftp_"){
      arr.splice(i, 1);
   }
}
于 2018-11-29T12:45:52.147 回答
0

使用临时数组来存储您需要的字符串。

for(i=0;i<are.length;i+=) {
  if(!arr[i].startesWith('ftp_')){
    temp[j]=arr[i];
    j++:
  }
  arr=temp;
}
于 2013-08-29T18:59:46.593 回答