- A+
所属分类:Web前端
每日算法
今日是:
1、将字符串转换为驼峰格式
2、判断字符串中是否有连续重复的字符
将字符串转换成驼峰格式
// css 中经常有类似 background-image 这种通过 - 连接的字符,通过 javascript 设置样式的时候需要将这种样式转换成 backgroundImage 驼峰格式,请完成此转换功能:
// 以 - 为分隔符,将第二个起的非空单词首字母转为大写
// -webkit-border-image 转换后的结果为 webkitBorderImage
// “font-size”
// “fontSize”
/*题目分析:
1.明确驼峰格式是第二个字符串开始的字符串首字母大写,第一个字符串首字母小写
2.思路:首先通过-,可以判断字符串首字母的位置
3.一般情况:第一个要求是去掉-后,第一个字符串不变,第二个字符串的首字母大写
特殊情况:-在开头,第一个字符串在-后面,
4.解决思路:先按照一般情况处理,最后取出字符串的首字母转换为小写,符合题意
*/
点击查看代码
function cssStyle(str){ var arr = str.split('') while(arr.indexOf('-')!==-1){ //从头开始检索,返回-的索引位置 const index =arr.indexOf('-'); // 删除从index位置开始的一个元素 arr.splice(index,1); // -后面的第一个字母迁移到-的位置,转换为大写 arr[index] = arr[index].toUpperCase() } arr[0] = arr[0].toLowerCase(); return arr.join(''); } var str = '-font-size'; console.log(cssStyle(str))
字符串中连续重复的字符
// 给定字符串 str,检查其是否包含连续重复的字母(a-zA-Z),包含返回 true,否则返回 false
// 示例1
// 输入
// 'rattler'
// 输出
// true
// 思路:注意连续重复,是指相连的两个字符相同,若有这种字符则能输出布尔值,要考虑是采用判断输出,还是采用方法。
// 这里两种方法采用test判断str中是否有符合正则式的内容,find是判断字符串切割形成的数组中是否有符合函数的元素
// 易错:没有考虑到连续情况
点击查看代码
// 方法1: function containsRepeatingLetter(str) { return /([a-zA-Z])1/.test(str); } // 方法2: function aa(str){ let arr = str.split('') let item = arr.find((item,index) => arr[index] == arr[index+1]) return item ? true : false } var str = 'ralerr' console.log(containsRepeatingLetter(str)) console.log(aa(str))