匹配子字符串并删除数组元素

时间:2017-11-19 12:28:05

标签: javascript jquery arrays

我有一个数组["C09111718/1/165", "J04111732/1/241.5", "T03111746/1/200"],我想删除以"C09111718"开头的元素 如何使用Javascript

实现此目的

3 个答案:

答案 0 :(得分:1)

您可以使用filter功能排除以C09111718

开头的任何元素

注意:此方法将创建一个新数组。

ES6:



var arr = ["C09111718/1/165", "J04111732/1/241.5", "T03111746/1/200"];
var newArr = arr.filter(str => !str.startsWith("C09111718"));
console.log(newArr);




ES5:



var arr = ["C09111718/1/165", "J04111732/1/241.5", "T03111746/1/200"];
var newArr = arr.filter(function(str) {
  return !str.startsWith("C09111718");
});
console.log(newArr);




答案 1 :(得分:1)

你已经有答案,但仍然只是一个建议。 如果您要在之间搜索字符串。后来你可以利用正则表达式的力量。 :d

 var arr = ["C09111718/1/165","J04111732/1/241.5","J04111732/C09111718/241.5","C09111718/1/165","C09111718/1/165","T03111746/1/200","C09111718/1/165"];
    
    arr = arr.filter(function(item){
    	return item.search('C09111718') == -1;
    });
    
    console.log(arr);

答案 2 :(得分:0)

嗯@ Maulen的答案很棒。我希望您了解Array#some以及如何通过此方式实现解决方案。

只是为了好玩:)

var array = ["C09111718/1/165", "J04111732/1/241.5", "T03111746/1/200"];
var match = "C09111718";

function deleteIfMatches(array, match){
 array.some((ele)=>{
ele.indexOf(match) >= 0 ? array.splice(array.indexOf(ele),1): null
 });
 console.log(array)
}
deleteIfMatches(array, match);