目录:
1、用正则和非正则,实现一个字符串转为驼峰
2、判断一个字符串中出现次数最多的字符,统计这个次数
3、写一个获取非行间样式的函数
4、字符串反转,如将 '12345678' 变成 '87654321'
5、将数字 12345678 转化成 RMB 形式 如: 12,345,678
1、用正则和非正则,实现一个字符串转为驼峰
非正则
let str = 'get-element-by-id';
function toCamBakStr(str) {
let strArr = str.split('-');
for(let i = 1; i < strArr.length; i++) {
let start = strArr[i].charAt(0).toUpperCase();
let end = strArr[i].slice(1);
strArr[i] = start + end;
}
return strArr.join('');
}
let newStr = toCamBakStr(str);
console.log(newStr); // getElementById
正则
let str = 'get-element-by-id';
function toCamBakStr(str) {
return str.replace(/\-\w/g, ([,word]) => {
return word.toUpperCase()
})
}
let newStr = toCamBakStr(str);
console.log(newStr); // getElementById
2、判断一个字符串中出现次数最多的字符,统计这个次数
let str = "asdfssaaasasasasaa";
console.log(getNumber(str));
function getNumber(str) {
//定义一个空的对象存储数据
let obj = {};
//这个对象是用来存储最终结果
let result = {
word: "",
count: 0
};
//遍历数据
for (let i = 0; i < str.length; i++) {
//判断空的对象中有没有值,有的就是当前值++ 没有的就让值为1
if (obj[str[i]]) {
obj[str[i]]++;
} else {
obj[str[i]] = 1;
}
}
//这个遍历是遍历obj对象里的值
for (let key in obj) {
//如果对象一个值比结果对象里的数字大,那么这个值就是最终结果。
if (obj[key] > result.count) {
result.word = key;
result.count = obj[key];
}
}
return result;
}
3、写一个获取非行间样式的函数
let app = document.getElementById('app');
function getStyle(el, attr) {
// currentStyle 是IE浏览器获取非行间样式的方法
// 返回一个样式对象,通过指定属性名取到对应的属性值
if(el.currentStyle) {
return el.currentStyle[attr];
}else {
// getComputedStyle 是其他浏览器获取非行间样式的方法
// 两个参数,第二个参数可以是要匹配的伪类元素字符串
// 对于普通元素来说可以不写,也可以是null
// 返回一个样式对象,通过指定属性名取到对应的属性值
return window.getComputedStyle(el, null)[attr]
}
}
console.log(getStyle(app, 'width')); // 500px
4、字符串反转,如将 '12345678' 变成 '87654321'
let str = "abcdefg";
function strReverse(str) {
//将字符串通过split("") 切割为数组, 用reverse() 实现数组的反转 ,通过join("")
//将数组转换为字符串。
return console.log(
str
.split("")
.reverse()
.join("")
);
}
strReverse(str);
5、将数字 12345678 转化成 RMB 形式 如: 12,345,678
let str = 12345678;
toRMB(str);
function toRMB(str) {
//创建一个空的数组 用来存储转换的值
let arr = [];
//将数字转换为字符串,然后转 切割为数组,并反转
let str1 = (str + "").split("").reverse();
//循环遍历
for (let i = 0; i < str1.length; i++) {
//判断条件 三个为一组 并且第一个不为下标0
if (i % 3 === 0 && i != 0) {
arr.push(","); //数组中添 加 ","目的是为了分割
}
//将字符添加到空的数组中
arr.push(str1[i]);
}
//最终将处理好的数组反转并转换为字符串
console.log(arr.reverse().join(""));
}
网友评论