使用 .filter() 定位带有 'a' 的名称

0 javascript

所以我想弄清楚如何从我的对象中获取所有带有字母“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)
Run Code Online (Sandbox Code Playgroud)

Apl*_*123 5

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

const withA = people.filter(p => /a/i.test(p.Name));
Run Code Online (Sandbox Code Playgroud)

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

const withA = people.filter(p => p.Name.toLowerCase().includes("a"));
Run Code Online (Sandbox Code Playgroud)