字符串的方法(都不能修改字符串本身)
length 字符串长度
获取指定字符串位置的字符
const str = 'string';
str.charAt(6) // ''
str[6] // undefined
检查是否包含某个字符或字符串?
const str = 'string';
str.indexOf('st'); // 0
str.includes('s') // true
str.startsWith('str') // true
str.endsWith('ing') // true
链接字符串
const str1 = 'string';
const str2 = 'string';
str1.concat(str2,'extra');
字符串转化成数组
const str = 'string';
str.split('') // ['s','t','i','n','g']
截取字符串
const str = 'string';
str.slice(n,m) // 从n截取到m,不包含m
str.substr(n,number) // 从n开始截取number个字符
大小写转换
toLowerCase()
toUpperCase()
字符串匹配(跟正则表达式一起使用)
str.search(/a/) // 返回第一个index
str.match(/[a-z]/) //返回数组
str.replace(/[a-z]/g,'hh') // 返回新字符串
移除前后空白
str.trim()
str.trimStart()
str.trimEnd()
重复
str.repeat(n) //重复n次 小数向下取整
数组常用方法
可以改变数组本身的方法
push pop unshift shift
数组添加元素或者删除单个元素的方法
splice、reverse、sort
splice(index,deleteNum,addItem);
删除和添加都是从index(包含)开始算起
arr.sort((a,b)=>return a-b;)
1.若返回值小于0,a排在b的前面
2.返回值等于0,位置不变
3.返回值大于0,a排在b后面
// 按照id升序排列,id相同的话,按照age升序排列
var array = [{id:10,age:2},{id:5,age:4},{id:6,age:10},{id:9,age:6},{id:2,age:8},{id:10,age:9}];
array.sort((a,b)=>{
if(a.id === b.id){
return a.age - b.age;
} else {
return a.id - b.id;
}
})
// 名字为Koro1的对象排在前面
var array = [{name:'Koro1'},{name:'Koro1'},{name:'OB'},{name:'Koro1'},{name:'OB'},{name:'OB'}];
array.sort((a,b)=>{
if(a.name === 'Koro1'){
return -1;
} else {
return 1
}
})
console.log(array)
fill填充数组
fill(item,startIndex,endIndex)
['a', 'b', 'c'].fill(7, 1, 2) // ['a', 7, 'c']
不能改变原数组的方法
数组遍历方法:
every some filter map forEach reduce for...of(遍历数组值) for...in(遍历数组下标)
数组查找方法:
indexOf(返回值) includes(boolean) find(返回第一个满足条件的值)
数组增删方法:
concat(数组拼接)、slice(m,n)(获取某部分数组[n,m))
数组去重方法
Array.from(new Set(arr))
[...new Set(arr)]
// reduce
function unique(arr){
return arr.reduce((prev,curr)=>{
!prev.includes(curr) && (prev.push(curr))
return prev
},[])
}
// filter
var a = [1,2,3,3]
let s = new Set()
let b = arr.filter(item=>s.has(item)?false:(s.add(item)))
indexOf方法
for循环