将给定数组中每个单词的前三个字母大写的函数。
P粉899950720
P粉899950720 2023-07-29 10:09:17
[JavaScript讨论组]

我写了一个函数,它接受一个单词并将前三个字母大写。现在我需要在一个单词数组上运行相同的函数,以便返回每个单词的前三个字母大写。我看到有很多人在问如何将句子中每个单词的第一个字母大写,但这不是同一件事。我必须使用我已经写好的函数,这样当我使用console.log打印它时,它的输出看起来像这样:

console.log(applyAll(['str1', 'str2', 'str3', 'str4'], capitalizeThreeLetters));

我尝试使用for循环来实现这个,但返回的是所有单词连在一起的结果。在我的研究中,我看到可以使用forEach()方法在数组元素上运行函数,但我无法弄清楚如何应用它。

//Function that takes in str returns it with three first letters capitalized

function capitalizeThreeLetters(str){

  let capFirst = str[0].toUpperCase();
  let capSecond = str[1].toUpperCase();
  let capThird = str[2].toUpperCase();

  let splitStr = str.slice(3);

  let wholeStr = capFirst + capSecond + capThird + splitStr;
  return wholeStr;
}

console.log(capitalizeThreeLetters('testing')); // => returns 'TESting'
console.log(capitalizeThreeLetters('again')); // => returns 'AGAin'



//Function that takes in a string array and applies capitalizeThreeLetters function to each array element so each word is returned with first three letters capitalized

function applyAll(arr){
  
  for (let i = 0; i < arr.length; i++){
  return capitalizeThreeLetters(arr);
  }
}  

console.log(applyAll(['mai', 'brian', 'jeho', 'han'], capitalizeThreeLetters)); 
// => returns 'MAIBRIANJEHOhan'
// => should return ['MAI', 'BRIan', 'JEHo', 'HAN']


P粉899950720
P粉899950720

全部回复(1)
P粉331849987

你的applyAll函数并不按你想要的方式工作。当你返回时,函数立即退出。在这种情况下,你在循环内部返回,阻止了循环继续执行和运行其他两次迭代。

你的第二个问题是,你将整个数组传递给了capitalizeThreeLetters,而不是一个单词。你可能想要使用capitalizeThreeLetters(arr[i])。现在,你传递了整个数组,导致数组中的前三个单词被大写,而不是每个单词的前三个字母。

你可以使用map方法来修复它:

function applyAll(arr){
  return arr.map(capitalizeThreeLetters);
}

在数组上使用map函数将会对数组的每个元素调用一个函数,然后返回一个包含结果的新数组。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号