【发布时间】:2020-05-24 14:16:35
【问题描述】:
我正在创建一个涉及从数组中删除文本的程序。如果一个字母包含在数组中的一个单词中,则该单词将被删除。我的第一个测试成功了,一个带有小数组的简单正则表达式:
var regex = /z/;
var words = ["eggs", "zebras", "lampshade"];
for (i = 0; i < words.length; i++) {
let testResult = regex.test(words[i]);
if (!testResult) {
words.splice(i, 1);
}
}
console.log(words);
正如预期的那样,它返回了[ 'zebras' ]。因为这很成功,所以我使用一个名为“an-array-of-english-words”的 npm 包迅速扩大规模。我运行了我的新脚本:
const masterWords = require("an-array-of-english-words");
var regex = /z/;
var words = masterWords;
for (i = 0; i < words.length; i++) {
let testResult = regex.test(words[i]);
if (!testResult) {
words.splice(i, 1);
}
}
console.log(words);
每次我运行它时,它都会返回不遵守正则表达式的值。例如,上面的代码返回 ['aa', 'aahed', 'aahs', ...] 作为它的前几个值。我是否必须更改代码才能处理更大的数组?我是否犯了一个我没有注意到的愚蠢错误?
【问题讨论】:
-
你可以试试这样用吗? console.log(words.filter(d => /z/.test(d)))
-
很高兴听到这个消息!
标签: javascript arrays regex