Ich habe Code, der versucht, einen vollständigen Namen wie Marie Carrie Smith oder Stan Alan Blan Baker in Marie C. Smith - Stan A. B. Baker zu ändern. Ich vermisse viel und habe das Gefühl, ich könnte das besser machen, aber aus irgendeinem Grund bin ich scheiße und kann das nicht bestehen.

module.export = {
    @param {string} name
    @return {string}

    answer: function(name) {
        var splitName = name.split(" ");
        for (i=0; i<splitName.length; i++) {
            if(splitName.length === 3) {
                splitName[1].charAt(1); 
            } else if (splitName.length === 4) {
              splitName[1].charAt(1);
              splitName[2].charAt(1);
            }
        }
        return split.join(" ");
    }
}
0
Stacy Areas 18 Apr. 2018 im 20:59

3 Antworten

Beste Antwort

Hier ist ein Beispiel, wie Sie das etwas einfacher machen können

var name1="Marie Carrie Smith";
var name2="Stan Alan Blan Baker";

function answer(name) {
  var splitName = name.split(" ");
  if(splitName.length>=3){
    for (i=1; i<splitName.length-1; i++) {
      splitName[i]=splitName[i].charAt(0)+'.';
    }
  }
  return splitName.join(" ")
}

console.log(answer(name1))
console.log(answer(name2))
module.export = {
    @param {string} name
    @return {string}

    answer: function(name) {
        var splitName = name.split(" ");
        if(splitName.length>=3){
            for (i=1; i<splitName.length-1; i++) {
                splitName[i]=splitName[i].charAt(0)+'.';
            }
        }
        return splitName.join(" ")
    }
}
0
Roman Grinev 18 Apr. 2018 im 18:19

Sie könnten Ihren Code einfach ein wenig verschönern:

 const [first, ...rest] = name.split(" ");
 const last = rest.pop();

 return [first, ...rest.map(n => n[0] + "."), last].join(" ");
2
Jonas Wilms 18 Apr. 2018 im 19:13

Sie können dieses kleine Snippet verwenden:

module.export = {
    @param {string} name
    @return {string}

    answer: function(name) {
        return name.split(" ").map((val, index, arr) => (index !== 0 && index !== arr.length-1) ? val.charAt(0) + '.' : val).join(" "); 
    }
}

Oder wenn Sie ES6 unterstützen:

answer: name => name
                 .split(" ")
                 .map((val, index, arr) => 
                      (index !== 0 && index !== arr.length-1) ? 
                      val.charAt(0) + '.' : 
                      val)
                 .join(" ")
1
Cristian Traìna 18 Apr. 2018 im 18:14