如何从以" XXX"开头的数组中删除项目

时间:2015-03-15 01:21:23

标签: javascript

我们假设你有以下数组:

var array = ["app_angrybirds", "app_flappybird", "ilovebirds"];

您将如何删除以字符串"app_"开头的任何数组元素?

3 个答案:

答案 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);
    }
}

希望有所帮助。