首页 > 解决方案 > 使用 .filter() 查找带有“a”的名称

问题描述

所以我想弄清楚如何从我的对象中获取所有带有字母“a”的名称。我能够弄清楚如何从我的 .people 对象中找到以字母“a”开头的名称,如下面的示例所示。但我希望能够在名称中的任何位置获取所有带有字母“a”的名称,而不仅仅是在特定的索引位置。谢谢!(如果可能,首选箭头语法)

const people = [
    {
      Name: 'Ryan',
      Age: 27
    },
    {
      Name: 'Alie',
      Age: 27
    },
    {
      Name: 'Lincoln',
      Age: 4
    },
    {
      Name: 'Luke',
      Age: 2
    },
  ]

const StartsWith = people.filter( letter => letter.Name[0] === 'A' );
console.log(StartsWith)

标签: javascript

解决方案


只需使用一个简单的不区分大小写的正则表达式:

const withA = people.filter(p => /a/i.test(p.Name));

或者,转换为小写并使用String.prototype.includes

const withA = people.filter(p => p.Name.toLowerCase().includes("a"));

推荐阅读