javascript - 最好在转换之前将字符串转换为数组(javascript)

标签 javascript string

我一直在 Coderbyte 解决一些简单的 JavaScript 挑战。其中之一是获取一个字符串并将每个单词的第一个字母大写。我用几种方法解决了这个问题。首先将单词转换为数组,然后“操作”字符串本身。我想知道这两个选项是否是首选?也就是说,我收到了一些反馈,表明操作字符串通常不是一个好主意,因为它们是不可变的,这意味着我并不是真正操作字符串,而是用一个字符串替换另一个字符串。我不太清楚为什么这是一件坏事。也许是内存问题或速度问题?无论如何,我的解决方案如下。如有任何反馈,我们将不胜感激。

function LetterCapitalize(str) { 

  str = str.split(" ");
  for (i=0; i<str.length; i++){
    str1 = str[i].split("");
    str1[0] = str1[0].toUpperCase();
    str[i] = str1.join("");
  }
  str = str.join(" ");
  return str;        
}

function LetterCapitalize(str) { 
  str = str.split(" ");
  for (var i=0; i<str.length; i++){
  console.log(str[i].length);
    str[i]=str[i].charAt(0).toUpperCase()+str[i].slice(1,str[i].length);
  }
  str = str.join(" ");
  return str; 
}

最佳答案

最佳实践是确保它可读、可以在您想要支持的浏览器/平台上运行并且执行速度很快。速度是最简单的,所以我将你的代码添加到这个 jsPerf 中,并且还找到了另一个关于大写第一个字母的 jsPerf:

您的代码示例: http://jsperf.com/capitalize-first-letter-2

其他 jsPerf 也有同样的事情: http://jsperf.com/capitalize-first-letter

关于javascript - 最好在转换之前将字符串转换为数组(javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19667545/

相关文章:

javascript - 如何使用 javascript 仅将目标 ="_blank"添加到某些链接?

sql - 甲骨文 : String Concatenation is too long

c++ - 删除具有特定字符要求的字符串 vector 的元素

c - 意外的指针随机变化。为什么会改变呢?破坏指针算术

javascript - 无法通过webapi在浏览器angularjs中显示文件

php - 来自 jQuery 或 JavaScript 的 XMLRPC 调用

javascript - 按下并释放鼠标按钮时会触发鼠标事件 "mousemove"

javascript - Bootstrap 日期时间选择器删除子午线上午/下午

python - 在Python中递归地合并字符串列表中的连续元素

java - 检查两个字符串是否包含相同顺序的相同字符