如何筛选对象数组中email属性域名后缀为@gmail.com的元素?
解决方案
直接使用JavaScript数组内置的filter()方法结合后缀匹配逻辑即可实现筛选,核心是判断每个对象的email属性是否以@gmail.com结尾。
完整代码示例
// 原数组 let registers = [ {name: 'Ray', email: 'ray@gmail.com', password: '1234'}, {name: 'Carl', email: 'carl@gmail.com', password: '4321'}, {name: 'Lina', email: 'lina@outlook.com', password: '5678'} ]; // 筛选逻辑 let gmailUsers = registers.filter(item => { return item.email.endsWith('@gmail.com'); });
逻辑说明
filter()方法会遍历原数组的每一项,执行传入的回调函数,最终返回所有回调返回值为true的元素组成的新数组,不会修改原数组endsWith()是字符串内置方法,用于判断字符串是否以指定的后缀结尾,ES6及以上版本支持,是当前最直观的后缀判断方案- 如需兼容更低版本的JS环境,可以换成正则匹配写法:
let gmailUsers = registers.filter(item => { return /@gmail\.com$/.test(item.email); });
最终输出结果
筛选后gmailUsers数组仅包含两个符合要求的对象:
[ {name: 'Ray', email: 'ray@gmail.com', password: '1234'}, {name: 'Carl', email: 'carl@gmail.com', password: '4321'} ]
内容的提问来源于stack exchange,提问作者WillJaimes
相关产品推荐
相关产品推荐

