从数组javascript中删除值

时间:2016-05-18 15:33:35

标签: javascript arrays loops

我有一个数组JavaScript和一个字符串:

var pool1 = ['ca','cahier','cartable','carte','cartographe','canape'];
var key1 = 'car';

我要做的是,从数组中删除所有不包含key1的值。

为此,我写了这个函数:

function searchInPool(key, pool){
    for (i = 0; i < pool.length; i++) {
        var index = pool[i].indexOf(key);
        if (index > -1) {
            pool.splice(index, 1);
        }
    }
    return pool;
}

似乎工作正常,但最终结果给了我:

["cartable", "carte", "cartographe", "canape"]

已成功删除cacahier,但canape不应该在此,因为它不包含car任何人都可以解释我的内容是否误解了我在我的职能部门写的内容?

预期的最终结果是:

["cartable", "carte", "cartographe"]

非常感谢

1 个答案:

答案 0 :(得分:5)

您可以使用Array#filter

array.filter(e => !e.includes(key));

var pool1 = ['ca', 'cahier', 'cartable', 'carte', 'cartographe', 'canape'];
var key1 = 'car';

var result = pool1.filter(e => !e.includes(key1));
console.log(result);

<强> ES5:

var result = pool1.filter(function(el) {
    return el.indexOf(key1) === -1;
});