1> 常用字符串方法
- toLowerCase(): 把字符串转为小写,返回新的字符串
- toUpperCase(): 把字符串转为大写,返回新的字符串
//转换大小写
let str = 'aBcDeFgHIjK'
let newStr1 = str.toLowerCase()
let newStr2 = str.toUpperCase()
console.log(newStr1); //abcdefjhijk
console.log(newStr2); //ABCDEFJHIJK
复制代码
- indexOf(): 返回某个指定的子字符串在字符串中第一次出现的索引位置,如果没有查找到则返回-1(也可以用于数组的去重)
let str = 'abcdsonggesajdkljsakldjasldsa'
let index = str.indexOf('b')
console.log(index); //1
复制代码
- substr(index,howmany): 返回从指定下标开始指定长度的的子字符串
let str = 'abcdsonggesajdkljsakldjasldsa'
let index = str.substr(0,2)
console.log(index); //ab
复制代码
- split(): 把字符串分割成字符串数组
//字符串转数组
let str1 = 'ligoudan zhangcuihua zhaotiezhu'
let str2 = 'ligoudan,zhangcuihua,zhaotiezhu'
let str3 = 'ligoudan-zhangcuihua-zhaotiezhu'
let arr1 = str1.split(' ')
let arr2 = str2.split(',')
let arr3 = str3.split('-')
console.log(arr1); //"ligoudan","zhangcuihua","zhaotiezhu"
console.log(arr2);
console.log(arr3);
复制代码
2> 常用数组方法
- arr.reverse() 反转数组,会改变原数组,并返回反转后的新数组
// 反转数组arr.reverse()
let arr=[1,2,3,4,5]
arr.reverse()
console.log(arr); //(5)[5,4,3,2,1]
复制代码
- arr.sort(function (a, b) { return a - b }) 数组升序排列
// a-b从小到大排序
let arr = [1, 8, 3, 6, 9, 7, 4]
arr.sort(function (a, b) {
return a - b
})
console.log(arr); //(7)[1,3,4,6,7,8,9]
复制代码
- arr.sort(function (a, b) { return b - a }) 数组降序排列
// b-a从大到小排序
arr.sort(function (a, b) {
return b - a
})
console.log(arr); //(7)[9,8,7,6,4,3,1]
复制代码
- arr.length = 0 清空数组
// 清空数组arr.length=0
let arr = [1, 2, 3, 4, 5]
let str = '12345'
str.length = 0
arr.length = 0 //清空数组 []
console.log(arr);
console.log(str); //根据索引获取指定字符 12345
console.log(str[0]); //1
复制代码
- arr.join(),将数组的每一项用指定字符连接形成一个字符串。默认连接字符为 “,” 逗号
// 数组转字符串arr.join()
let arr = ['张翠花', '李狗蛋', '赵铁柱']
let str = arr.join(' ')
console.log(str); //张翠花 李狗蛋 赵铁柱
复制代码
- arr.splice(index,howmany,arr1,arr2...) ,删除元素并添加元素,从index位置开始删除howmany个元素,并将arr1、arr2...数据从index位置依次插入。howmany为0时,则不删除元素
// 字符串转数组arr.split()
let str = '123456789'
let arr=str.split(',')
console.log(arr); //['123456789']
//在删除位置追加新元素arr.splice()
let arr=['李狗蛋','赵铁柱','张翠花','张三']
arr.splice(1,2,'李四','王麻子')
console.log(arr); //(4)['李狗蛋','李四','王麻子','张三']
复制代码
3> 交换数据,展开运算符
- 交换数据
//交换数据
let a = 1
let b = 9;
[a, b] = [b, a]
console.log(a, b); //a=9 b=1
复制代码
- 展开运算符
//展开运算符 ...
let arr1 = [1, 2, 3, 4, 5]
let arr2 = [...arr1]
arr2[2] = 10
console.log(arr2); // [1,2,10,4,5]
复制代码
- 数学方法展开运算符
//数学方法展开运算符
let arr = [1, 2, 3, 4, 5]
let max = Math.max(...arr) //第一种输出方法 5
console.log(max);
console.log(Math.max(...arr)); //第二种输出方法 5
复制代码
4> 遍历方法
- Array.forEach(function),用于调用数组的每个元素,并将元素传递给回调函数。原数组不变,v代表里面的value值,i代表数组里的索引值
let arr = [1, 2, 3, 4, 5]
let newarr = []
arr.forEach(function (v, i){
newarr.push(v + 10)
})
console.log(newarr); //[11,12,13,14,15]
复制代码
- Array.map(function),原数组的每一项执行函数后,返回一个新的数组。原数组不变
① 数字补0 arr.map(function)
//数字补0 arr.map(function)
let arr = [12, 4, 6, 9, 7, 13, 45, 15]
let newarr = arr.map(function (v, i) {
if (v < 10) {
return '0'+ +v
}
return v
})
console.log(newarr);
复制代码
② 年龄补1
//年龄补1
let arr = [{
name: '李狗蛋',
age: 16,
sex: '男'
}, {
name: '张翠花',
age: 20,
sex: '女'
}, {
name: '赵铁柱',
age: 25,
sex: '男'
}, {
name: '王小二',
age: 19,
sex: '男'
}]
let newage = arr.map(function (v,i){
v.age+=1
return v
})
console.log(newage);
复制代码
- Array.filter(function),过滤数组中,符合条件的元素并返回一个新的数组
① 利用filter去掉空字符串和0
//利用filter去掉空字符串和0
let arr = [13, 0, '', 90, 78, '', '']
let newarr = arr.filter(function (v, i) {
return v !== '' && v !== 0
})
console.log(newarr);
复制代码
② 利用filter去重
//利用filter去重
let arr = [1, 1, 2, 3, 4, 4, 5, 6, 6, 6, 6, 7, 7, 8, 9, 9, 9]
let newarr = arr.filter(function (v, i) {
//i是数组当中的索引 v是每一项
//第一轮 arr.indexOf(1)--> i = 0 返回0
//第二轮 arr.indexOf(1)--> i = 0 返回0
//第三轮 arr.indexOf(2)--> i = 2 返回2
//第四轮 arr.indexOf(3)--> i = 3 返回3
//第五轮 arr.indexOf(4)--> i = 4 返回4
//第六轮 arr.indexOf(4)--> i = 5 返回4
return arr.indexOf(v) === i
})
console.log(newarr);
复制代码
5> 计算每个字母出现的次数
let str = 'aabbccddeeffffaaaacccbb'
let arr = str.split('')
console.log(arr);
let obj = {}
arr.forEach(function (v, j) {
if (obj[v]) {
obj[v] += 1
} else {
obj[v] = 1
}
});
console.log(obj);
复制代码
6> 将字符串首字母大写其余小写
let str = 'GEt-elEMENT-bY-clASS-iD'
//转换成小写
let newstr = str.toLowerCase()
console.log(newstr); //get-element-by-class-id
//转换成数组以-分隔
let arr = newstr.split('-')
console.log(arr); //0: "get" 1: "element" 2: "by" 3: "class" 4: "id" length: 5
//map遍历
let newarr = arr.map(function (v, j) {
//索引值不为0执行if语句否则返回v也就是get不大写或者if(v>0)
if (v !== 0) {
//v值的0索引也就是第一个字母转成大写并且返回后面的字符串
return v[0].toUpperCase() + v.substr(1)
}
return v
})
console.log(newarr); //0: "Get" 1: "Element" 2: "By" 3: "Class" 4: "Id" length: 5
let res = newarr.join('')
console.log(res); //GetElementByClassId