【笔记】JS通过map()方法转换数组中所有字符串首字母为大写字母
所涉及到的方法:
- toString() 方法可把一个逻辑值转换为字符串,并返回结果。
- substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符。
- toLocaleLowerCase() 方法用于把字符串转换为小写。
- toUpperCase() 方法用于把字符串转换为大写。
- map() 方法按照原始数组元素顺序依次处理元素。
主要说一下这个map()的用法:
w3c里介绍:
- map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
- map() 方法按照原始数组元素顺序依次处理元素。
- 注意: map() 不会对空数组进行检测。
- 注意: map() 不会改变原始数组。
- 语法: array.map(function(currentValue,index,arr), thisValue)
也就是说map(fn) 相当于遍历数组中所有元素并对每个元素执行一次fn方法;
用法:
function fn(x) {
return x * x;
}
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
arr.map(fn);
//结果:[1, 4, 9, 16, 25, 36, 49, 64, 81]
思考:
- 1、先把数组中对象转换成字符串
- 2、截取字符串中首个字符并将其转换成大写字母
- 3、截取首字符外的其它字符,并和转换后的首字符合并
代码:
var arr = ['adam', 'LISA','barT',223,"大团长"];
function toName(x){
x=x.toString();//防止数字干扰,提前把对象转换成字符串,toLocaleLowerCase() 只能被字符串调用。
x = x.toLocaleLowerCase();// 把整个字符串转换成小写
var x1 = x.substr(0,1).toUpperCase();// 截取第一个字符并将其转换成大写字母
var x2 = x.substr(1);// 取到从第二个开始到最后的字符串
x = x1+x2;
return x;
}
// 注意这里不带括号
arr=arr.map(toName);
console.log(arr);
结果:
简化后代码:
var arr = ['adam', 'LISA','barT',223,"大团长"];
function toName(x){
x = x.toString().toLocaleLowerCase();
return x.substr(0,1).toUpperCase()+x.substr(1);
}
arr=arr.map(toName);
console.log(arr);