【问题标题】:Find strings with words starting with specific character in an array在数组中查找以特定字符开头的单词的字符串
【发布时间】:2022-11-17 16:53:01
【问题描述】:

如果我有像这样的字符串数组

const arrayOfString=["Ajay Choudhary","Charlli Chouhan","Kerri Cilce","Dalis Menary"];

如何获取以C开头的名字和以C开头的姓氏 就像我的输出一样

Ajay Choudhary
Charlli Chouhan
Kerri Cilce

我在下面尝试过,但没有给出预期的输出

const arrayOfString = ["Ajay Choudhary", "Charlli Chouhan", "Kerri Cilce", "Dalis Menary"];

arrayOfString.forEach(element => {
  //console.log(element);
  if (element.startsWith("C")) {
    //console.log(element);
  }
  if (element.charAt(element.charAt(-1)).startsWith("C")) {
    console.log(element);
  }
});

【问题讨论】:

  • 请研究我对您的问题所做的更改。另请阅读How to Ask

标签: javascript


【解决方案1】:

您可以使用简单的正则表达式来检查是否有任何单词以 C 开头:

const arrayOfString=["Ajay Choudhary","Charlli Chouhan","Kerri Cilce","Dalis Menary", "Karoline-Celvin Boobier"];

arrayOfString.forEach(element => {
    if (/Cw+/.test(element)) {
      console.log(element);
    }
 });

【讨论】:

  • 谢谢,它的作品
【解决方案2】:

筛选字母。我假设所有名字都以大写字母开头

注意:麦凯恩也将包括在内。

const arrayOfString = ["Ajay Choudhary", "Charlli Chouhan", "Kerri Cilce", "Dalis Menary"];

const cNames = arrayOfString.filter(name => name.includes("C"))
console.log(cNames)

【讨论】:

  • 谢谢,它的作品
  • 它不会过滤那些不是以“C”开头的假设这个数组:[“Ajay Choudhary”,“Charlli Chouhan”,“Kerri Cilce”,“DaCis Menary”];
  • @AliSattarzadeh 正如我所说:I assume all names will start with capital letter - 如果中间有大写字母 C 的名字,它们确实会被包括在内。
【解决方案3】:

我认为,用空格拆分单词,然后基于以“C”开头的过滤会做你想做的。

这是我所做的:

arrayOfString.filter(name=>name.split(' ').filter(n => n.startsWith('C')).length > 0)

const arrayOfString = ["Ajay Choudhary", "Charlli Chouhan", "Kerri Cilce", "Dalis Menary"];
const result = arrayOfString.filter(name=>name.split(' ').filter(n => n.startsWith('C')).length > 0)
console.log(result)

【讨论】:

    猜你喜欢
    • 2018-12-22
    • 2015-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多