我正在寻找一种方法来搜索数组,看看是否存在以搜索词开始的值。
const array1 = ['abc','xyz'];
所以在上面搜索'abcd'将返回true。
我一直在玩包含,但这似乎只检查完整的值。此外,startsWith我不认为会工作,因为我相信检查字符串,而不是数组中的值??
您可以使用find()
函数,它允许您在参数中传递一个自定义函数,该函数将对每个值进行测试。这样,您就可以按照您的意愿对数组的每个值使用startsWith()
。
的例子:
const array1 = ['abc','xyz'];
function findStartWith(arg) {
return array1.find(value => {
return arg.startsWith(value);
});
}
console.log(findStartWith("hello")); // undefined
console.log(findStartWith("abcd")); // abc
console.log(findStartWith("xyzz")); // xyz
如果希望返回true
或false
,可检查返回值是否与undefined
不一致。
function findStartWith(arg) {
return !!array1.find(value => {
return arg.startsWith(value);
}) !== undefined;
}
与布尔值相同的代码段:
const array1 = ['abc','xyz'];
function findStartWith(arg) {
return array1.find(value => {
return arg.startsWith(value);
}) !== undefined;
}
console.log(findStartWith("hello")); // false
console.log(findStartWith("abcd")); // true
console.log(findStartWith("xyzz")); // true