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

Javascript 删除数组中以特定字符串开头的所有项,javascript,jquery,Javascript,Jquery,大家好,假设我在javascript中有这样一个数组: var arr = ["ftp_text_1", "abc_text_2", "ftp_text_3"]; 如何从数组中删除以ftp\uu开头的所有字符串 谢谢使用正则表达式: $.each(arr, function (index, value) { if (value.match("^ftp_")) { arr.splice(index, 1); } }); 只需使用: arr = arr.filte

大家好,假设我在javascript中有这样一个数组:

var arr = ["ftp_text_1", "abc_text_2", "ftp_text_3"];
如何从数组中删除以
ftp\uu开头的所有字符串


谢谢使用正则表达式:

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

arr = arr.filter(function (item) {
   return item.indexOf("ftp_") !== 0;
});
编辑:对于IE9-您可以使用的支持:


使用临时数组存储所需字符串

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

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

因此,最好的做法是从末尾删除列表

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

返回所有不以ftp开头的项目。检查
'ftp'
是否位于位置
0
,即字符串的开头+1注意:这是一个jQuery解决方案。
for(var i=arr.length-1 ; i>=0;i--){
   if(arr[i].includes("ftp_"){
      arr.splice(i, 1);
   }
}