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] 会出错,需提前判断。
立即学习“Java免费学习笔记(深入)”;
详细的 Three.js 3D 图形参考,涵盖场景设置、相机、几何体、材质、光照、动画、控制器、加载器、数学工具和调试。
- 用
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 < arr.length; i++) {
const item = arr[i];
if (typeof item === 'string' && item.length) {
arr[i] = item[0].toUpperCase() + item.slice(1).toLowerCase();
}
}
扩展:支持多单词首字母大写(如 'hello world' → 'Hello World')
若数组中字符串含空格,需按单词分别处理,可用 split(' ').map(...).join(' '):
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']
不复杂但容易忽略边界情况,关键是先判空、再判类型、最后安全截取和拼接。

















