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