一、数组
破坏性数组方法:
- pop() 删除并返回数组的最后一个元素
- push() 向数组末尾插入一个或多个元素,并返回新的数组的长度
- shift() 删除并返回数组的第一个元素
- unshift() 向数组前插入一个或多个元素,并返回新的数组的长度
- reverse() 数组反转
- splice() 可以删除、插入、替换数组中的元素 参数(删除的起始位置,删除的数量,要插入的元素) sort()对数组进行排序 sort默认进行升序排序(为了适应更多类型,sort会将参数先转为字符串,再根据字符串的Unicode编码来排序) sort((a,b)=>a-b) // 升序排列 sort((a,b)=>b-a) // 降序排列
非破坏性数组方法:
- forEach() 遍历数组 (不会改变原数组) 不会返回新数组,return也失效,常配合push、unshift使用,参数:element 当前元素 index 元素索引 array 被遍历的数组
- filter() 将数组中符合条件的值保存到一个新数组中并返回(不会改变原数组)
- map() 根据当前数组生成一个新数组,回调函数的返回值会成为新数组中的元素(不会改变原数组)
- reduce() 归并 可以用来对一个数组中的所有元素整合为一个值,参数((a,b)=>{},[初始值])
数组去重
/*
1.双重for循环,判断前后两个值是否相等,使用数组的 splice(j,1)删除(**数组中存在连续相等的数字时,会自动删除重复值的位,导致后一位向前移动,发生漏检。在splice(j,1)后增加j--解决**)
2.单层for循环内执行数组的indexOf方法,let a = arr.indexOf(a[i],i+1)从i+1处开始查询是否有和a[i]值相同的,如果a不等于-1,说明有重,调用splice删除,再i--。
*/
//3.不改变原数组方式
let a = [1,2,34,4,2,1]
let b = []
for(let ele of a){
if(b.indexOf(ele) === -1){
b.push(ele)
}
}
//4.使用Set去重
const a = [1, 3, 3, 1];
let b = new Set(a); //数组a为可迭代对象,b此时为Set结构
b = Array.from(b); //Set为可迭代对象,b此时为数组结构
console.log(b);
const a = [1, 3, 3, 1];
let b = new Set(a); //数组a为可迭代对象,b此时为Set结构
b = Array.from(b); //Set为可迭代对象,b此时为数组结构
console.log(b);
二、字符串
字符串本质上就是一个字符数组,故很多方法和数组类似(字符串的所有方法都不会改变原字符串)
- length 获取字符串长度
- 字符串[索引] 获取指定位置的字符
- str.at() 根据索引获取字符,可接受负值
- str.charAt() 根据索引获取字符
- str.concat() 字符串连接
- str.includes() 检查字符串中是否包含某个值
- str.indexOf() 检查字符串中是否包含某个值
- str.lastIndexOf() 检查字符串中是否包含某个值
- str.startWith() 检查一个字符串是否由指定内容开头
- str.endWith() 检查一个字符串是否由指定内容结尾
- str.padStart(指定长度,填充内容) 通过添加指定内容,使字符串保持指定长度
- str.padEnd() 通过添加指定内容,使字符串保持指定长度
- str.replace(被替换,替换) 使用一个新字符串替换一个指定内容
- str.replaceAll() 使用一个新字符串替换所有指定内容
- str.substring(开始,结束) 截取字符串
- str.split(指定字符) 将一个字符串拆分为一个数组(删除指定字符拆成数组)
- str.toLowerCase() 将一个字符转换为小写
- str.toUpperCase() 将一个字符转换为大写
- str.trim() 去除字符串前后空格
- str.trimStart() 去除字符串前空格
- str.trimEnd() 去除字符串后空格