遍历数组并删除包含特定单词的所有值
Iterate through an array and remove all values that contain a specific word
我有这样一个数组:
suggestions = [ "the dog",
"the cat",
"the boat",
"boat engine",
"boat motor",
"motor oil"
];
如何遍历数组并删除包含特定单词的所有条目?
例如,删除包含单词"the"的所有元素,使数组变为:
[ "boat engine",
"boat motor",
"motor oil"
];
创建一个新数组可能更容易:
var correct = [],
len = suggestions.length,
i = 0,
val;
for (; i < len; ++i) {
val = suggestions[i];
if (val.indexOf('the') === -1) {
correct.push(val);
}
}
我将使用如下设置:
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/
尝试使用正则表达式
var suggestions = [ "the dog",
"the cat",
"the boat",
"boat engine",
"boat motor",
"motor oil"
];
var filtered = [],
len = suggestions.length,
val,
checkCondition = /'bthe'b/;
for (var i =0; i < len; ++i) {
val = suggestions[i];
if (!checkCondition.test(val)) {
filtered.push(val);
}
}
检查小提琴
使用ECMAScript5的功能:
suggestions.reduce (
function (r, s) {!(/'bthe'b/.test (s)) && r.push (s); return r; }, []);
相关文章:
- Javascript-从随机的单词数组中创建段落
- 将组成单词的字符添加到数组的开头
- undercore返回数组中对象的indes,其中单词存在于对象中的句子中
- Javascript-在一个数组中搜索整个单词,并创建一个符合条件的新数组
- 在两个位置显示数组中的随机单词
- 如果输入包含数组中的任何单词
- 单词数组到字符串
- Javascript/Node AI-如何使用match从单词数组中重复单词
- 在单词数组中查找相似的单词
- 在单词数组中搜索单词
- 将句子字符串拆分为单词数组,然后将单词数组拆分为单词数组中的字符数组
- underscore.js基于单词数组从字符串中删除文本
- 从JavaScript中的单词数组中查找第n个字符
- Coffeescription在页面上的单词数组中进行迭代
- 我们如何用单词数组填充一组
- 用正则表达式连续收集单词数组中的任意单词
- 试图响应从node.js http服务器中分割成单词数组的文本
- 在mark.js中为单独的单词数组设置样式
- 将字符串拆分为单词数组以查找“最长”
- 王牌编辑器查找全部不起作用.需要所有带有 dif 的单词.数组中的值