有人知道这个函数为什么不返回第二个初始值吗?应为:"S"。H',改为:"S">
function abbrevName('Sam Hayes'){
let initials = 'x.x';
for (let i = 0; i < name.length; i++) {
if (name[i] === name[i].toUpperCase()) {
initials = initials.replace('x', name[i]);
}
}
return initials;
}
它的空格被识别为大写
function abbrevName(name){
let initials = 'x.x'
for (let i = 0; i < name.length; i++) {
if (name[i] === name[i].toUpperCase() && name[i]!= " ") {
console.log(name[i].toUpperCase())
initials = initials.replace('x', name[i])
}
}
return initials;
}
console.log(abbrevName('Sam Hayes'))
您需要执行name[i] === name[i].toUpperCase()
,而不是name[i].toLowerCase() === name[i].toUpperCase()
,因为空间将通过前一次检查。
您可以使用Array.split((例如
function abbrevName(name){
const arr = name.split(" ");
const initials = arr[0][0]+"."+arr[1][0];
return initials
}