Вернуть только аббревиатуру - только первые буквы элементов массива должны стать заглавными

Не пойму почему только становиться заглавной первая буква первого элемента массива:

function makeAbbr(words) {

let strArr = words.split(' ') ;
for (let i = 0; i < strArr.length; i++) {
    strArr = strArr[i].charAt(0).toUpperCase();
}
return strArr;
}

console.log(makeAbbr('national basketball association'));

Ответы (3 шт):

Автор решения: Алексей Шиманский

function makeAbbr(words) {

  let strArr = words.split(' ');
  for (let i = 0; i < strArr.length; i++) {
    strArr[i] = strArr[i].charAt(0).toUpperCase();
       // ^^^--------
  }
  
  return strArr;
}

console.log(makeAbbr('national basketball association'));

→ Ссылка
Автор решения: Slava Rozhnev

Классический однострочник

const abbr = 'national basketball association'
             .split(' ') // split words by space
             .map((w)=>w[0].toUpperCase()) // generate first letters Upper case array
             .join(''); // join array to string

console.log(abbr)

→ Ссылка
Автор решения: tesla29
/**
 * @param {string} words
 *
 * @returns {string}
 */
function makeAbbr(words) {
  // write code here
  let abbreviation = words[0];
  
  for (let i = 0; i < words.length; i++) {
    if (words.charAt(i) === ' ') {
      abbreviation += words[i + 1];
    }
  };

  return abbreviation.toUpperCase();
 
}
→ Ссылка