【问题标题】:JavaScript: string Manipulation [duplicate]JavaScript:字符串操作[重复]
【发布时间】:2015-03-06 00:01:38
【问题描述】:

我很难将一些方法链接在一起。你能提供一些帮助吗?

最终结果应该是 = 米老鼠

var name = "MicKEy MOUse";

function nameChanger(oldName) {
    var finalName = oldName;

    var splitString = name.split(' ');

    var fname = splitString.slice(0,1);
    var fname_lower = fname.toLowerCase.slice(1,6);


    return fname_lower;

};
console.log(nameChanger(name));

由于我正在尝试学习函数中的方法,我希望能在这些项目上提供帮助。但是,如果有更多雄辩的方式来执行相同的操作,我也会很感激这种输入。

提前感谢您的知识和指导。

【问题讨论】:

    标签: javascript arrays string


    【解决方案1】:
    1. 根据空格字符将名称一分为二

      var splitString = oldName.split(' ');
      
    2. 将整个第一个字符串转换为小写,将第二个字符串转换为大写。

      var fname = splitString[0].toLowerCase();
      var lname = splitString[1].toUpperCase();
      
    3. 现在,只需从fname 创建一个新字符串,将第一个字符更改为大写,将其与lname 连接并返回,就像这样

      return fname[0].toUpperCase() + fname.substring(1) + " " + lname;
      

    所以,你的完整功能应该是这样的

    function nameChanger(oldName) {
        var splitString = oldName.split(' ');
        var fname = splitString[0].toLowerCase();
        var lname = splitString[1].toUpperCase();
        return fname[0].toUpperCase() + fname.substring(1) + " " + lname;
    };
    

    注意:您可能想知道,我们为什么要这样做

    fname[0].toUpperCase() + fname.substring(1)
    

    只更改fname 的第一个字符。在 JavaScript 中,字符串是不可变的对象。一旦创建了 String 对象,就永远无法更改它。因此,我们正在创建一个新的 String 对象,基于 fname 修改后的第一个字符和 fname 的其余部分。

    【讨论】:

      【解决方案2】:
      var name = "MicKEy MOUse";
      
      function nameChanger(oldName) {
      
          var splitString = name.split(' ');
      
          return splitString[0].charAt(0).toUpperCase()+splitString[0].slice(1).toLowerCase()+' '+splitString[1].toUpperCase();
      
      };
      
      console.log(nameChanger(name));
      

      扩展代码(罗伯特·罗斯曼):

      var name = "MicKEy MOUse";
      
      function nameChanger(oldName) {
      
          //Splitting `oldName` to array with words
          var splitString = name.split(' ');
      
          //Setting variable which contains first word
          var firstWord = splitString[0];
      
          //Setting variable which contains second word
          var secondWord = splitString[1];
      
          //Setting variable which contains first letter of first word
          var firstWordLetter = firstWord.charAt(0);
      
          //Setting variable which contains first word letters, without first letter
          var firstWordRestOfLetters = firstWord.slice(1);
      
          //Result first word (first letter to upper case, rest of letters to lower case)
          var resultFirstWord = firstWordLetter.toUpperCase()+firstWordRestOfLetters.toLowerCase();
      
          //Result second word (all second word letters to upper case)
          var resultSecondWord = secondWord.toUpperCase();
      
          //Returning string with first and second word separated with space
          return resultFirstWord+' '+resultSecondWord;
      
      };
      

      【讨论】:

      • 不鼓励使用没有解释的代码。
      • 专为您编辑。
      猜你喜欢
      • 1970-01-01
      • 2020-09-13
      • 2015-01-25
      • 1970-01-01
      • 1970-01-01
      • 2021-08-27
      • 1970-01-01
      • 1970-01-01
      • 2017-08-02
      相关资源
      最近更新 更多