我们假设你有以下数组:
var array = ["app_angrybirds", "app_flappybird", "ilovebirds"];
您将如何删除以字符串"app_"
开头的任何数组元素?
答案 0 :(得分:2)
for (var i = 0; i < array.length; i++) {
if(array[i].substr(0, 4) === "app_") {
array.splice(i, 1);
i--; //The index will be moved one forward at the end of the loop, but the whole array
//will be shifted, so we compensate by decrementing i
}
}
您可以循环查看前4个字符(使用substr)并进行比较。如果匹配,请使用拼接删除元素。我们还使用i--进行小型黑客攻击,以使索引指向正确的位置。
答案 1 :(得分:0)
以上解释:
for循环遍历数组的每个元素。对于每次迭代,将元素的前四个字符(其索引与迭代变量匹配)与字符串&#34; app _&#34;进行比较。这里数组方法substr(0,4)将字符从第0个元素隔离到但不包括第4个元素,并使子字符串可用于与&#34; app _&#34;进行比较。如果条件为真,那么子字符串元素的匹配与&#34; app _&#34; ,使用splice()方法根据传递给它的参数从数组中手术删除元素,在本例中为第i个元素。
答案 2 :(得分:0)
这是我能想到的最简单的方法:
var array = ["app_angrybirds", "app_flappybird", "ilovebirds"];
var result = array.filter(doesNotHave(/^app_/));
alert(JSON.stringify(result));
function doesNotHave(regex) {
return function (str) {
return !regex.test(str);
}
}
希望有所帮助。