Javascript 用replace()缩写两个单词的名称

Javascript 用replace()缩写两个单词的名称,javascript,replace,Javascript,Replace,有人知道为什么这个函数不返回第二个首字母吗? 应为“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]); } } r

有人知道为什么这个函数不返回第二个首字母吗? 应为“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;
}
函数abbrevName('Sam Hayes'){
让首字母='x.x';
for(设i=0;i
您需要执行
name[i]==name[i].toUpperCase()
,而不是
name[i]==name[i].toUpperCase()
,因为空格将通过前面的检查。

您可以改用Array.split() 比如说

function abbrevName(name){
  const arr = name.split(" ");
  const initials = arr[0][0]+"."+arr[1][0];
  return initials 
 }

它的空格被认为是大写的
函数abbrevName(name){
让首字母='x.x'
for(设i=0;iconsole.log(abbrevName('Sam Hayes'))
的结果是什么?