我有一个数组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"]
已成功删除ca
和cahier
,但canape
不应该在此,因为它不包含car
任何人都可以解释我的内容是否误解了我在我的职能部门写的内容?
预期的最终结果是:
["cartable", "carte", "cartographe"]
非常感谢
答案 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;
});