Afetr字符串用'/'分割,进入'includes'方法。
包含的条件具有“ head”。
而且即使str有“大头”,也有单词“头”
如果在此条件下匹配,我想获取“ true”。
如何解决这个问题?
非常感谢您阅读本文。
const str = "big head/smallmouse/car";
const strSplited = str.split("/");
const condition = ['head','hand','foot']
console.log(condition.includes(strSplited[0]));
答案 0 :(得分:0)
您可以通过修改逻辑以在condition
数组中搜索value
(即"big head"
)字符串中包含的项strSplited[0]
来实现。
在看起来像这样的代码中
const str = "big head/smallmouse/car";
const strSplited = str.split("/");
const condition = ['head','hand','foot']
const [ bigHeadString ] = strSplited;
const result = condition.some(value => bigHeadString.includes(value));
console.log(`condition array contains match of ${strSplited[0]}:`, result);
答案 1 :(得分:0)
您可以使用.some()
遍历要使用.includes()
测试的每个字符串。
const str = 'big head';
const conditions = ['head', 'hand', 'foot'];
console.log(conditions.some(condition => str.includes(condition)));
答案 2 :(得分:0)
您已经在condition.includes(strSplited[0])
中将其颠倒了。您实际上应该在做strSplited [0] .includes(condition)。为了检查所有单词,可以使用for循环,如下所示:
for (let i = condition.length; i--;) {
if (strSplited[i].includes(condition) {
console.log(true);
}
else if (i == 0) {
console.log(false);
}
}