У меня есть строки в массиве, и мне нужно удалить записи, которые содержат строки. Но также удаление частичных совпадений.
var rawData = ["foo", "bar", "foobar", "barbaz", "boo" ]
var unwantedData = ["foo","baz"]
var cleanData = filter(rawData,unwantedData)
console.log(cleanData)
>>>["bar","boo"]
Мое текущее решение выглядит следующим образом:
function filter(data,filterArray){
return data.filter(rawEntry => {
var t = true; // set to false if index is found
filterArray.forEach(unwantedStr => { t = t && ~rawEntry.indexOf(unwantedStr) ? false : t });
return t; //decides if entry gets removed by filter
});
}
Но я чувствую, что может быть лучший способ сделать это. Это, вероятно, вычислительно не самый эффективный способ.