JavaScript数组常用方法及其特性

数组

基本特性
  • JavaScript中已经为我们封装好了较为完善的数组(自动扩容,允许存放不同类型的数据)

  • 数组中间插入删除性能较低,但是查找速度快(下标查找)

常用方法
增/删
方法名说明返回值
unshift(参数1…)头增修改原数组返回新的长度
push(参数1…)尾增修改原数组返回新的长度
shift()头删修改原数组返回删除元素值
pop()尾删修改原数组返回删除元素值
修改顺序
方法名说明返回值
reverse()翻转数组,修改原数组返回新数组
sort()直接使用,会将数字当成字符串,只看第一位;回调使用,排序;修改原数组返回新数组
// 不能直接使用arr.sort,会按照字符串排序,即按照第一位数字排序
// 必须在里面加个function确定顺序
var arr=[1,20,60,7];
arr.sort() //1,20,60,7
arr.sort(function(a,b){
	return(a-b);//升序排列
    return(b-a);//降序排列
});
查询
方法名说明返回值
indexOf(参数)从前向后找,只找一个第一个满足条件的索引号,不存在返回-1
lastIndexOf(参数)从后向前找,只找一个第一个满足条件的索引号,不存在返回-1
includes(参数,开始位置)查找是否存在true/false
连接、截取、过滤、更新
方法名说明返回值
concat()连接两个或多个数组,不影响原数组返回新数组
slice()数组截取slice(begin,end),不影响原数组返回被截取项目的新数组
filter(item=>item.done)不影响原数组返回新数组
splice()数组更新splice(begin,个数,item1…itemX)第三个参数可选,不填即为截取,会影响原数组返回被删除项目的新数组
// 注意:slice()顾头不顾尾
    var arr=[1,20,60,7];
    var newArr = arr.slice(0,3)
    console.log(newArr);// [1,20,60]
遍历
  • Array.from()

将类数组或可遍历对象转化为真正的数组

Array.from(可遍历对象名)
  • forEach(function(value,index,arr) {})

无返回值对原数组没有影响

arr.forEach(function(value,index,arr) {})
// value当前正在遍历的元素
// index当前正在遍历元素的索引
// arrobj整个数组
  • map(function(value,index,arr) {})

支持return返回对原数组没有影响

array.map(function(value,index,arr), thisValue)
// value	必选。当前元素的值
// index	可选。当前元素的索引值
// arr	可选。当前元素属于的数组对象
// thisValue	可选。对象作为该执行回调时使用,传递给函数,用作 "this" 的值。如果省略了 thisValue,或者传入 null、undefined,那么回调函数的 this 为全局对象。
// 返回一个新数组

// 等同于
function myMap(fn){
//this是调用此方法的数组
	let newArr = []
	for(let i = 0;i<this.length;i++){
      let result = fn(this[i],i,this)
      newArr.push(result)
	}
	return newArr
}

map和forEach不能自身通过return或break终止循环,只能通过new throw error()

let list=[1,2,3,4,5,6];
try{
  list.map(item=>{
     if(item===3){
          throw new Error()
         }
     console.log(item)
  })
} catch {}
// 1 2
判断条件遍历查询
// callback有三个参数。
// value:每一次迭代查找的数组元素。
// index:每一次迭代查找的数组元素索引。
// arr:被查找的数组。
  • every(callback)

所有项都满足条件返回true

  • some(callback)

只要有一项满足条件,就会返回true

  • find(callback)

查找符合条件的元素,找到第一个值返回找不到返回undefined

  • findIndex(callback)

查找符合条件的元素,找到第一个值返回其索引找不到返回-1

注意:find()返回的是值,indexOf()返回的是索引

findIndex比indexOf更强大一些,可以通过回调函数查找对象数组,但indexOf可以指定开始查找位置的索引

数组转字符串
方法名说明返回值
toString()把数组转换为字符串,逗号分隔每一项返回一个字符串
join(“分隔符”)把数组中所有元素转换为一个字符串返回一个字符串
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会飞的战斗鸡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值