繁体   English   中英

在 JavaScript 中删除以某些字符串结尾的数组元素

[英]Delete elements of array that end with certain strings in JavaScript

我有一个数组,我需要删除以某个字符串结尾的每个元素。

var arr = ["strawberry", "apple", "blueberry"];

我需要删除所有以berry结尾的元素。 数组应该像这样结束:

var arr = ["apple"]; 

您可以使用Array.prototype.filter创建一个新的、过滤的数组:

var newArr = arr.filter(function(arrayElement){
    return arrayElement.indexOf("berry") != arrayElement.length - "berry".length;
});

从文档:

filter() 方法创建一个新数组,其中包含通过所提供函数实现的测试的所有元素。

因此,提供的回调应该返回true以将元素投影到输出数组中,或者返回false以省略它。 您如何实施测试取决于您。 我提供的测试有点幼稚。

要查找以某物结尾的项目,我们使用something$$表示字符串的结尾或行的结尾)。 如果我们否定这个regex表达式,我们可以找到不以该字符串结尾的项目。
另一方面,javascript 中的数组有一个filter函数,它根据filter函数过滤数组项。 通过将这两者结合起来,我们可以创建一个仅包含我们想要的内容的新数组。

 var arr = ["strawberry", "apple", "blueberry"]; var endsWith = "berry" var regx = new RegExp(endsWith+"$"); var result = arr.filter(function(item){return !regx.test(item);}) alert(result);

你可以使用Array.prototype.filter()String.prototype.endsWith()

// Declaring array of fruits
let arr = ['strawberry', 'apple', 'blueberry'];

// Filtering elements that are not ending with 'berry'
let filtered = arr.filter(fruit => !fruit.endsWith('berry'));

console.log(filtered);
// ['apple']
var fruits = ["strawberry", "apple", "blueberry"];
for(var i=0;i<3;i++){
var a = fruits[i].indexOf("berry") > -1;
    document.getElementById("demo").innerHTML = a;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM