JS中数组和字符串方法的简单整理

本文详细介绍了JavaScript中数组和字符串的各种操作方法,包括增删改排、截拼转等,以及拓展方法如indexOf、lastIndexOf、forEach、map、reduce、filter等。特别强调了这些方法对原数据的影响,以及在排序和数字处理上的注意事项。同时,对字符串的查、替、截、转等操作也进行了阐述,帮助开发者更好地理解和运用这些基础但重要的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注:注意数组和字符串的方法是否改变原数据,以及操作返回值

一、数组

  • unshift() /push()
  • shift() /pop()
  • splice()
  • slice()
  • concat()
  • reverse()
  • sort()
  • toString()
  • join()
  • indexOf()
  • lastIndexOf()
  • forEach()
  • map()
  • reduce()
  • filter()
  • find()
  • some()
  • every()
1、数组的基本方法(增、删、改、排会改变原数组,截、拼、转不影响原数组
  1. 增:unshift() /push() 前增/后增一个或多个元素 ,返回数组新长度
  2. 删:shift() /pop() 前删/后删一个元素,返回删除元素
  3. 改:splice(index, 删除的长度,item,…,item) 删除/添加元素, 返回截取数组
    arr.splice(index, length) // 删除
    arr.splice(index, length, item…) // 添加,length为0,代表不删除的添加
let arr = [1,2,3,4,5]
arr.splice(2,3)  // 返回[3, 4, 5] ,arr = [1, 2]
let arr2 = [1,2,3,4,5]
arr.splice(1, 0, 11, 22)  // 返回 [], arr = [1,11,22,2,3,4,5]
  1. 截:slice(start, end)
    注意:数组和字符串共有这个方法,用法也是一样的;截前(start)不截后(end),返回截取数组
let arr = [1,2,3,4,5,6]
let newArr = arr.slice(2,3) // newArr = [3]
let str = 'abcdefg'
let newStr = str.slice(2,3) // newStr = '3'
  1. 拼:concat(item, item…) / concat([item, item]) 返回拼接后的数组
  2. 排:reverse() 反转, 返回反转的数组,改变原数组
    sort() 排序,返回排序的数组,改变原数组
    其中,sort并不能简单地对数字排序,而是按照字符编码的顺序进行排序
let arr = ['alen', 'zoom', 'klay', 'rose', 'bob']
arr.sort() // ["alen", "bob", "klay", "rose", "zoom"] // 符合预期
let arr = [1,50,100,2000]
arr.sort() // [1, 100, 2000, 50] 不符合预期的排序
// 对数字进行升序  return a - b,降序 return b - a
let arr = [3,200,60,10000,7]
arr.sort((a, b) => {return a - b}) //  [3, 7, 60, 200, 10000]
  1. 转:toString() 转为以逗号分隔的字符串 / 转换进制, 返回字符串,不改变原数组
    join() arr.toSting() 结果等于arr.join(’,’)
2、数组的拓展方法
  1. indexOf(查找的元素,开始查找的下标):从某个下标开始查找这个元素第一次出现的位置。 查不到返回-1。与字符串的indexOf用法一致
  2. lastIndexOf(查找的元素,开始查找的下标): 返回的是,查找元素最后一次在数组(字符串)出现的位置。返回结果与indexOf一致,只不过这是从后往前查询,特殊业务下缩短查询时间。
  3. forEach() 遍历数组 (无返回值)
array.forEach(function (value,index,arr) {
	// value: 当前元素,index:当前元素的索引值,arr:当前元素所属的数组对象
})
  1. map() 返回新数组,不改变原数组
array.map(function (value,index,arr) {
	// value: 当前元素,index:当前元素的索引值,arr:当前元素所属的数组对象
})
  1. reduce() 接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值
arr.reduce(callback,[initialValue])

callback (执行数组中每个值的函数,包含四个参数)

    1、previousValue (上一次调用回调返回的值,或者是提供的初始值(initialValue))
    2、currentValue (数组中当前被处理的元素)
    3、index (当前元素在数组中的索引)
    4、array (调用 reduce 的数组)

initialValue (作为第一次调用 callback 的第一个参数。)

具体用法参考:JS数组reduce()方法详解及高级技巧

  1. filter() 过滤符合条件的元素,返回新数组,不改变原数组
filter(function(value,index,arr{return ...}) 
let arr = [1,6,4,4,8,9,33];
let list =arr.filter(function(value){
    return value >6
})
console.log(list)   // 8,9,13
  1. find() 返回符合条件的第一个元素
  2. some() 检测数组中的元素是否满足指定条件,返回Boolean值。如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测;否则返回false
  3. every 检测数组所有元素是否都符合指定条件,返回Boolean值。如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测;如果所有元素都满足条件,则返回 true

二、字符串

  1. 查:
    charAt(index): 根据下标查找指定的字符下表找不到时,输出空。
    charCodeAt(index): 根据下标查找指定的字符的编码值 。标超出范围时,输出NAN

  2. 替: replace(旧串,新串) 替换成新的字符串,一次只能替换一个

  3. 截:后面的end不截
    substring(start,end) 支持参数互换(3,4)(4,3)
    substr(start,length)
    slice(start,end) 支持负数(从右往左数,-1至-10等等)

  4. 转:
    toUpperCase():小写字母转大写字母
    toLowerCase():大写字母转小写字母
    split(分隔符,截取的长度) : 将字符串转为数组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值