我有一个包含600多个名字(名字和姓氏)的员工名单。基于此列表,我需要创建一个数组。我还需要一种语法,基于搜索查询,浏览此数组并返回 true 或 false ,如果搜索查询字符串是数组的一部分。搜索查询已在名为 query 的变量中捕获。
示例:
阵列
var employee = [ "John Smith", "Bob Hope", "Scott John", "Calum John" ];
如果查询值或查询值的一部分位于数组 employee 中,则返回 true ,否则返回 false
示例:
基本上,如果搜索查询包含任何名称,请返回 true 。
希望这很清楚。 JavaScript不是我的主要内容,所以非常感谢我能得到的所有帮助。
最佳, 约翰
答案 0 :(得分:1)
您可以将array#some
与array#includes
一起使用,方法是将您的查询转换为小写,并将员工姓名转换为小写。
employees.some(employee => employee.toLowerCase().includes(query.toLowerCase()) || query.toLowerCase().includes(employee.toLowerCase()))
var employees = [ "John Smith", "Bob Hope", "Scott John", "Calum John" ],
queries = ['john smith', 'bob', 'SCOTT JOHN FINANCE DEPARTMENT', 'health insurance'],
result = queries.map(query => employees.some(employee => employee.toLowerCase().includes(query.toLowerCase()) || query.toLowerCase().includes(employee.toLowerCase())));
console.log(result);