Nir*_*nae 1 javascript arrays loops
我有一个数组JavaScript和一个字符串:
var pool1 = ['ca','cahier','cartable','carte','cartographe','canape'];
var key1 = 'car';
Run Code Online (Sandbox Code Playgroud)
我想要做的是,从数组中删除所有不包含的值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;
}
Run Code Online (Sandbox Code Playgroud)
它似乎有效,但最终结果给了我:
["cartable", "carte", "cartographe", "canape"]
Run Code Online (Sandbox Code Playgroud)
它已成功删除ca,cahier但canape不应该在这里,因为它不包含car任何人可以解释我从我的函数中写的东西误解了什么?
预期的最终结果是:
["cartable", "carte", "cartographe"]
非常感谢
你可以用Array#filter.
array.filter(e => !e.includes(key));
Run Code Online (Sandbox Code Playgroud)
var pool1 = ['ca', 'cahier', 'cartable', 'carte', 'cartographe', 'canape'];
var key1 = 'car';
var result = pool1.filter(e => !e.includes(key1));
console.log(result);Run Code Online (Sandbox Code Playgroud)
ES5:
var result = pool1.filter(function(el) {
return el.indexOf(key1) === -1;
});
Run Code Online (Sandbox Code Playgroud)