目录
- 写一个方法把下划线命名转成驼峰命名
- 处理数字123,与字符串’abc’ 转换为’1a2b3c’
- 把字符串大小写进行切换
一、 写一个方法把下划线命名转成驼峰命名
ab_cd_ef -> AbCdEf
思路: 字符串处理,一般都需要把字符串转成数组,遍历处理后,然后,再转为字符串
function strHeadUpper(str){
let arr = str.split('_');// ['ab','cd','ef']
let res=arr.map((item,index)=>{
return item[0].toUpperCase()+item.slice(1);
});// ['Ab','Cd','Ef']
let resStr = res.join('');
return resStr;
};
let str = 'ab_cd_ef';
strHeadUpper(str);
// 'AbCdEf'
复制代码
二、处理数字123,与字符串’abc’ 转换为’1a2b3c’
1) 数字和字符串长度一样
时
var nums1 =123; var str1 = 'abc';
function composeNumStr(nums,str){
let numsStr = nums+'';
let res='';
for(let i=0; i<numsStr.length;i++){
res+=numsStr[i]+str[i]
}
return res;
};
composeNumStr(nums1,str1)
// '1a2b3c'
复制代码
2) 数字和字符串长度不一样
时
举例子,不兼容所有场景。 输入输出如下注释中。
var nums1 =123; var str1 = 'abcde';
// 遍历较短的一方,然后截取较长的一方剩余的串拼接即可
// 输出 '1a2b3cde'
function composeNumStr(nums,str){
let numsStr = nums+'';
let res='';
for(let i=0; i<numsStr.length;i++){
res+=numsStr[i]+str[i]
}
let res1 = res + str.slice(numsStr.length)
return res1;
};
composeNumStr(nums1,str1)
//'1a2b3cde'
复制代码
三、把字符串大小写进行切换
1) 方法一 字符串遍历 拼接
function strChange(str){
var strRes="";
for(var i of str){
console.log('-', i,i.toUpperCase());
strRes += i.toUpperCase() === i ? i.toLowerCase() :
i.toLowerCase() === i ? i.toUpperCase() :
i
}
return strRes
}
let str11 = 'abCdEFG';
strChange(str11)
// "ABcDefg"
复制代码
2) 方法二 字符串转数组 并遍历
var str="abCdEFG";
function strChange(str){
return str
.split("")
.map((item,index)=>{
const upperItem = item.toUpperCase();
return item === upperItem ? item.toLowerCase() : upperItem
})
.join("")
}
strChange(str)
// 'ABcDefg'
复制代码
总结
字符串处理
,一般都需要把字符串
转成数组
,遍历处理后
,然后,再转为字符串
字符串处理:
str
->split
->arr
->map
->new arr
->join
->str
疑问
- js数字为什么没有length,对象{}也没有length。
- js中除了字符串和数组有length,还有那些数据类型有length,比如 Map, weakSet ??
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END