JavaScript的数组、字符串方法总结

73 阅读3分钟

一、数组

破坏性数组方法:

  • 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() 去除字符串后空格