如何使用TypeScript从对象数组中过滤掉以字母P开头的名字?
解决TypeScript过滤掉name以P开头元素的问题
先明确你代码里的几个错误:
- 函数参数命名是
nameWithOutC,但返回语句里误用了未定义的nameWithOutP,变量名不匹配 - 错误访问了不存在的
book属性,应该操作对象的name属性 - 判断逻辑错误:仅判断是否等于
'P'无法覆盖首字母为P的情况,且需要保留不以P开头的元素
正确实现代码
const names = [ {name:'Finn',age: 23}, {name:'Presten',age: 24}, {name:'Pearl',age: 21}, {name:'Tim',age: 22}, {name:'Jade',age: 25}, {name:'Princess',age: 23}, ] const filterName = names.filter((item: {name: string, age: number}): boolean => { // 过滤掉name以P开头的元素,保留其余项 return !item.name.startsWith('P'); }) console.log('Filtering out a name starting with letter P') console.log(filterName)
代码说明
- 用
startsWith('P')直接判断字符串首字符,比手动截取首字符更简洁可靠 - 加
!取反,确保只保留不以P开头的元素 - 如果需要忽略大小写(同时过滤小写p开头的元素),可以修改为:
return !item.name.toLowerCase().startsWith('p');
内容的提问来源于stack exchange,提问作者honey
相关产品推荐
相关产品推荐

