每日算法:驼峰转换,判断连续字符

  • 每日算法:驼峰转换,判断连续字符已关闭评论
  • 155 次浏览
  • A+
所属分类:Web前端
摘要

今日是:1、将字符串转换为驼峰格式2、判断字符串中是否有连续重复的字符


每日算法

今日是:

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))