好的,这是我部分工作的内容(忽略区分大小写),比较以下内容:
arrayA = ["apples", "Oranges", "salt", "Cracked Black Pepper"];
arrayB = ["salt", "pepper", "orange"]
它“部分”与以下内容一起工作:
findAnyMatch(arrayA, arrayB): string[] {
let returnArray = [];
let conditionedArrayA = arrayA.map(i => i.toLowerCase().trim())
for (let i = 0; i < arrayB.length; i++) {
if (conditionedArrayA .includes(arrayB[i].toLowerCase().trim())) {
ret.push(arrayB[i].toLowerCase().trim());
}
}
return returnArray;
}
返回:"salt", "orange"
很高兴;问题是它在 arrayA 中看不到“pepper”,因为它前面有“黑色裂纹”。
我如何让它在条件数组A的每个字符串内的任何位置搜索?
Thanks
您可以使用过滤器等。使用正则表达式
- 过滤器仅用于获取所需值。
- Some 用于检查是否有任何值
arrayA
与当前元素匹配。
- 正则表达式用于匹配字符串。
i
标志用于不区分大小写。
let arrayA = ["apples", "Oranges", "salt", "Cracked Black Pepper"];
let arrayB = ["salt", "pepper", "orange"]
let find = (A,B) => {
return B.filter(b=> A.some(a=> new RegExp(b,'i').test(a)))
}
console.log(find(arrayA,arrayB))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)