私はこのセットアップを使用します:
var suggestions = [
"the dog",
"the cat",
"he went then",
"boat engine",
"another either thing",
"some string the whatever"
];
function filterWord(arr, filter) {
var i = arr.length, cur,
re = new RegExp("\\b" + filter + "\\b");
while (i--) {
cur = arr[i];
if (re.test(cur)) {
arr.splice(i, 1);
}
}
}
filterWord(suggestions, "the");
console.log(suggestions);
デモ: http://jsfiddle.net/Kacju/
逆方向にループし、(識別子を単語境界として使用して) 検索する単語を正しくチェックし、\b
一致するものを削除します。
一致を含む新しい配列を生成する場合は、通常どおりループし、push
一致しないものだけを新しい配列に追加します。これを使用できます:
var suggestions = [
"the dog",
"the cat",
"he went then",
"boat engine",
"another either thing",
"some string the whatever"
];
function filterWord(arr, filter) {
var i, j, cur, ret = [],
re = new RegExp("\\b" + filter + "\\b");
for (i = 0, j = arr.length; i < j; i++) {
cur = arr[i];
if (!re.test(cur)) {
ret.push(cur);
}
}
return ret;
}
var newSuggestions = filterWord(suggestions, "the");
console.log(newSuggestions);
デモ: http://jsfiddle.net/Kacju/1/