javascript数组首字母大写需用map()遍历并安全处理:先判断是否为字符串且非空,再取首字符touppercase()、其余tolowercase(),返回新数组;对空值、非字符串类型须校验,多词字符串需split-map-join。

JavaScript 数组遍历并实现首字母大写转换,核心是:先遍历数组每个字符串元素,再对每个字符串的首字母转大写、其余转小写(或保持原样),最后返回新数组。推荐用 map() 配合字符串方法,简洁且函数式。
用 map + toUpperCase() + slice() 实现
这是最常用、清晰的方式:对每个字符串取第一个字符转大写,拼接剩余部分(通常转为小写更稳妥)。
- 取首字符用
str[0]或str.charAt(0) - 剩余部分用
str.slice(1),建议加.toLowerCase()避免大小混杂 - 整个操作不修改原数组,返回新数组
示例:
const arr = ['hello', 'WORLD', 'jAvaScript', 'REACT']; const capitalized = arr.map(str => str && str.length ? str[0].toUpperCase() + str.slice(1).toLowerCase() : str ); // ['Hello', 'World', 'Javascript', 'React']
处理空值和非字符串类型
实际数据可能含 null、undefined、数字等,直接调用 str[0] 会出错,需提前判断。
- 用
typeof str === 'string'确保是字符串 - 用
str?.length或str && str.length防止空字符串或假值报错 - 非字符串可选择跳过、转字符串后再处理,或保留原值
健壮写法:
const safeCapitalize = arr.map(item => {
if (typeof item !== 'string') return item;
return item.length ? item[0].toUpperCase() + item.slice(1).toLowerCase() : item;
});
如果需要原地修改(不推荐)
虽可用 for 循环配合索引赋值,但违背不可变原则,易引发副作用。
- 仅在明确要求复用原数组且性能敏感时考虑
- 务必先校验
item类型和长度,避免undefined.toUpperCase()
示例:
for (let i = 0; i
<h3>扩展:支持多单词首字母大写(如 'hello world' → 'Hello World')</h3>
<p>若数组中字符串含空格,需按单词分别处理,可用 <code>split(' ').map(...).join(' ')</code>:</p>
<pre class="brush:php;toolbar:false;">const titleCase = arr.map(str => {
if (typeof str !== 'string') return str;
return str
.split(' ')
.map(word => word.length ? word[0].toUpperCase() + word.slice(1).toLowerCase() : word)
.join(' ');
});
// ['Hello World', 'Nice To Meet You']
不复杂但容易忽略边界情况,关键是先判空、再判类型、最后安全截取和拼接。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











