我在角度
中有这样的数组app.myStringArray=
[ 'abcdefg',
'123456',
'qwerty'
];
目前我有一个通用的方法来检查像这样的数组
app.factory('commons', function () {
var commons= {};
//Checks if the current url is
commons.checkString= function (str) {
if (app.myStringArray.indexOf(str) > -1) {
return true; //current string is in list
} else {
return false;
}
}
return commons;
}
);
如果我发送完整字符串'abcdefg'
或'123456'
或'qwerty'
,则此方法有效。
即使我获得了一些字符串,例如:'bcd'
,我怎样才能使它工作?
答案 0 :(得分:2)
要检查字符串是否包含其他字符串,您可以使用String.indexOf()
或ES6 String.includes()
。
要检查数组中的至少一个项是否与谓词匹配,您可以使用Array.some()
,或者只是自己遍历数组。
ES6解决方案:
function checkString(str) {
return myStringArray.some(s => s.includes(str));
}
ES5解决方案:
function checkString2(str) {
return myStringArray.some(function(s) {
return s.indexOf(str) > -1;
});
}
答案 1 :(得分:1)
遍历数组并检查数组中每个字符串的indexOf(str)
。不需要Angular。
var array = ['abcdefg', '123456', 'qwerty'];
function checkString(str) {
for (var i = 0; i < array.length; i++) {
if (array[i].indexOf(str) > -1) {
return true;
}
}
return false;
}
alert(checkString("bcd"));