我创建了一个函数,无论大小写如何,都会从字符串中搜索单个字母。这是它的样子。
function match(string, pattern) {
string = string.toLowerCase();
pattern = pattern.toLowerCase();
var patternarray = pattern.split("");
for (i = 0; i < pattern.length; i++) {
if (patternarray[i] >= "a" && patternarray[i] <= "z") {
if (string.indexOf(patternarray[i]) == -1) return false
}
}
return true
}
现在我想做类似的事情,除了这次我将搜索一个数组,而不是返回true / false我想返回一个新的数组,其中包含弹出字符串的位置。
例如,如果我的变量内容是[“Oranges”,“Apples”,“Bananas”]并且我的搜索是“n”,则函数将返回[0,2]。我是JavaScript的初学者,所以彻底的解释会有所帮助。
谢谢!
答案 0 :(得分:0)
Underscorejs有一个应该为你处理这个问题的功能。只需看看过滤功能。它能够返回一个包含通过真值测试的项目的新数组。
var aArray = _.filter(['asdf','ddd','afsf'], function(item){
return (item.indexOf('a') !== -1);
}
答案 1 :(得分:0)
function matchArray(array, pattern) {
var i,
len = array.length,
result = [];
for (i = 0; i < len; ++i) {
if (match(array[i], pattern)) {
result.push(i);
}
}
return result;
}