我有一个JS函数,它根据用户选择的过滤器创建一个数组(这部分工作正常),然后我有另一个函数(下面)循环遍历这个数组,如果值包含在字符串,如果不是,则为false。
var testString = "winter casual";
var valArray = ["winter", "casual"];
function filterArray(...values){
for (i=0; i<values.length; i++){
if (testString.includes(values[i])){
console.log(true);
} else {
console.log(false);
}
}
filterArray(valArray);
但是,我单击1个过滤器按钮将“winter”添加到values数组并返回“true”,但是然后我单击另一个来添加casual,它返回false,即使random也包含在字符串中。我有控制台记录值[],以确保“冬天”和“随意”都在我的数组中,它们是。
答案 0 :(得分:0)
将...values
替换为values
作为参数:
var testString = "winter casual";
function filterArray(values){
for (i=0; i<values.length; i++){
if (testString.includes(values[i])){
console.log(true);
} else {
console.log(false);
}
}
}
filterArray(['winter']);
filterArray(['winter', 'casual']);
答案 1 :(得分:0)
我不太确定这是否是您正在寻找的,因为您的函数实际上并没有返回任何内容,但这是一个非常有用的相当简单的函数:
const containsAll = (str, strs) => strs.every(s => str.includes(s))
console.log(containsAll("winter casual", ['winter'])) //=> true
console.log(containsAll("winter casual", ['winter', 'casual'])) //=> true
console.log(containsAll("winter casual", ['winter', 'casual', 'medium'])) //=> false