【问题标题】:How do I print out the first upper case letter in a string or array? [duplicate]如何打印出字符串或数组中的第一个大写字母? [复制]
【发布时间】:2022-11-17 14:10:56
【问题描述】:

function findUpper(text) {
    let arr = [];

    if (text.length === 0) {
        return arr;
    }

    if (text.charAt(0) === text[0].toUpperCase()) {
        arr.push(text[0]);
    }

    arr = arr.concat(findUpper(text.slice(1)));
    console.log(arr);
    return arr;
}

findUpper("i am a Web developer Student");

所需的输出是“W”,因为它是第一个大写字母,但我不知道如何打印出该结果。

【问题讨论】:

  • 您问题的目标是递归执行此操作,还是您对任何方法都满意?
  • 任何方法都可以。我尝试了我能想到的一切,但仍然没有运气。

标签: javascript arrays function


【解决方案1】:

你需要避免空格,因为空格大写等于它自己,也不需要使用递归函数,只需迭代即可

function findUpper(text){
    let arr = [];
    
    if(text.length === 0){
        return arr;
    }
    for(let i=0;i<text.length;i++){
       let txt = text.charAt(i)
       // using txt.trim().length > 0 to remove whitespace
       if(txt.trim().length > 0 && txt === text[i].toUpperCase()){
        arr.push(txt);
       }
    }
    return arr;
}
   



console.log(findUpper("i am a Web developer Student")[0]);

更新:另一种方法是先使用split(),然后使用迭代找到它

function findUpper(text){
    let arr = [];
    
    if(text.length === 0){
        return arr;
    }
    text = text.split(" ").join("")
    for(let i=0;i<text.length;i++){
       let txt = text.charAt(i)
       if(txt === text[i].toUpperCase()){
        arr.push(txt);
       }
    }
    return arr;
}
   
console.log(findUpper("i am a Web developer Student")[0]);

【讨论】:

  • 太感谢了!这非常有帮助。我试图解决这个问题已有一个多星期了。再次感谢您的帮助:)
  • @IanA 很高兴它能帮到你,所以你能把它标记为已接受吗?
猜你喜欢
  • 2011-08-18
  • 1970-01-01
  • 2014-11-26
  • 2013-06-11
  • 1970-01-01
  • 2021-06-21
  • 2013-02-21
  • 2018-08-24
相关资源
最近更新 更多