![](/img/trans.png)
[英]How to have the filter/find method return an object field in javascript
[英]Have problem with JavaScript .filter and .find to return items with specific letters
在以下 JavaScript 代码中,我试图获取包含字母“Y”或“y”的名称。 当我查找如何做到这一点时,我看到了.filter
和.find
方法。 但是这段代码只返回containsY = ['Tommy']
。 我试过for loop
,但.find
只返回提供条件中第一个元素的值,它不会返回所有带有“y”的名称。 有没有更好的方法来获取所有“Y”和“y”名称?
const students = ["Tommy","Noah","Xander","Adil","Bradley","Nicholas","Damien"]
let containsY = students.filter((student) => student.includes("Y"))
//Look for name with "y", and push it to containsY
containsY.push(students.find((student) => student.includes("y")))
console.log(containsY)
你的filter
方法很好。 它给出了不正确的结果,因为includes
区分大小写。
相反,在filter
回调中,将student
转换为小写,然后检查它是否包含"y"
:
const students = ["Tommy","Noah","Xander","Adil","Bradley","Nicholas","Damien"] const res = students.filter((student) => student.toLowerCase().includes("y")) console.log(res)
要么使用正则表达式(它的好处是只需要一个测试)
const students = ["Tommy", "Noah", "Xander", "Adil", "Bradley", "Nicholas", "Damien"] const result = students.filter(student => /y/i.test(student)) console.log(result)
或者在(单个)回调中测试.includes('y')
和.includes('Y')
。
const students = ["Tommy", "Noah", "Xander", "Adil", "Bradley", "Nicholas", "Damien"] const result = students.filter(student => student.includes('y') || student.includes('Y')); console.log(result)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.