JavaScript 之 数组(入门 详细)

数组

数组是值的有序集合,每个值叫做一个元素,每个元素在数组中有一个位置,用数字表示,称为索引(有时也叫做下标),数组的元素可以是任何类型的,数组索引从0开始,数组最大能容纳4294967295个元素。

定义数组

遍历数组

  • for循环

  • for in循环

0

当数组中出现索引不是数字的元素时,不能用for循环遍历,只能用for in

0

多维数组

二维数组

数组的每一项内容也都是数组

0

二维数组取值

0

输出二维数组的每一项

0

数组的方法(改变原数组 8种)

  • push()

  • 作用:向数组的尾部添加内容
  • 参数:要添加的内容(可以是多项)
  • 是否修改:修改原数组
  • 返回值:新数组的长度

0

  • pop()

  • 作用:从数组的尾部删除内容
  • 参数:无
  • 是否修改:修改原数组
  • 返回值:被删除的内容

0

  • unshift()

  • 作用:向数组的开头添加内容
  • 参数:添加的内容 可以是多项
  • 是否修改:修改原数组
  • 返回值:新数组的长度

0

  • shift()

  • 作用:删除数组的第一项
  • 参数:无
  • 修改:修改原数组
  • 返回值:被删除的内容

0

  • reverse()

  • 作用:将数组元素反向排序
  • 参数:无
  • 是否修改:修改原数组
  • 返回值:排序后的数组

0

  • sort()

  • 作用:把数组进行排序
  • 参数:无或者一个函数
  • 是否修改:修改原数组
  • 返回值:排序后的新数组

0

  • splice()

有没有数组塌陷

增删改 修改原数组

  • 删除

0

  • 新增
  • 添加到索引的前面

0

  • 替换 修改

0

数组方法中,修改原数组的方法(8种)

push pop unshift shift reverse sort splice fill

0

  • fill()

  • 作用:填充
  • 填充值 不写值时(默认是undefined)
  • 是否修改:修改原数组
  • 返回值:填充后的新数组

0

0

数组方法(不改变原数组)

  • slice()

  • 作用:获取子数组
  • 是否修改:不修改原数组
  • 返回值:获取的子数组(新数组)

  • arr.slice(开始索引,结束索引)

0

  • arr.slice(开始索引)

从开始索引截取到最后

0

  • arr.slice()

从0开始截取到最后,相当于复制了一遍

0

  • arr.slice(开始索引,结束索引) 负值

都可以是负值

0


  • concat()

  • 作用:拼接
  • 参数:拼接的内容
  • 是否修改:不修改原数组
  • 返回值:拼接后的新数组

0

  • toString()

  • 作用:转为字符串
  • 参数:无
  • 是否修改:不修改原数组
  • 返回值:字符串 ,用逗号分隔

0

  • join()

  • 作用:转为字符串
  • 参数:有/无
  • 是否修改:不修改原数组
  • 返回值:字符串 无参数是默认用逗号分隔
  • 有参数时,根据自定义参数拼接

0

eval() 运行代码块

  • indexOf() / lastIndexOf()

  • 作用:判断数组中是否含有对应的元素 如果含有返回对应的索引
  • 😈 如果该元素在数组中有多个,返回第一个的索引;不含返回-1
  • 参数:(想要判断的内容,开始索引(默认为0))
  • 是否修改;不修改原数组
  • 返回值:索引 -1

0

  •  includes()

  • 作用:判断数组中是否含有某项内容,有true 没有false
  • 参数:要判断的内容
  • 是否修改:不修改原数组
  • 返回值:true false

0

  • flat()

  • 作用:数组扁平化
  • 参数:无(默认拍平一层) 有(数值 拍几层) (infinity 无穷 无限)
  • 是否修改:不修改原数组
  • 返回值:拍平后的数组

0

数组去重

思考:数组去重

第一种 indexOf()

0

第二种 includes()

0

第三种 typeof

判断新对象中是否含有循环当前元素 存在用splice删除当前项,i-- 调整索引位置 防止发生数组塌陷问题

0

第四种 第三种的改进

typeof 判断新对象中是否含有循环当前元素如果含有 用数组的最后一项代替当前的重复项 再删除数组的最后一项 i-- 最后一项替换过来后再次进行比较,防止出现再次重复

0

第五种 普通的两层循环

第一层循环轮数 第二层循环取后面的数 进行比较 如果相同 使用splice将后面相同项删除掉

0

  • 数组迭代方法(9种)

  • forEach

  • 作用:遍历数组中的每一项,注意:return没有任何作用
  • 参数:函数 三个参数(item ,index,arr)
  • 返回值:undefined
  • 是否修改原数组:不修改

0

数组每一项+1

0

  • map() + return

  • 作用:把一个数组映射成一个新的数组 (长度相同)
  • 参数:函数 三个参数(item,index,arr)
  • 返回值:映射后的新数组(就是return的值)
  • 是否修改原数组:不修改

0

  • filter()

  • 作用:过滤 把满足条件(return)的内容都查找出来
  • 参数:函数 三个参数(item,index,arr)
  • 返回值:过滤后的新数组
  • 是否修改原数组:不修改

0

  • find()

  • 作用:查找 把满足条件(return)的内容都查找出来,只要第一项
  • 参数:函数 三个参数(item,index,arr)
  • 返回值:过滤后的新数组
  • 是否修改原数组:不修改

0

  • findIndex()

  • 作用:过滤 把满足条件(return)的内容索引查找出来,只要第一项
  • 参数:函数 三个参数(item,index,arr)
  • 返回值:查找的那一项索引值 查不到是 -1
  • 是否修改原数组:不修改

0

  • some()

  • 作用:数组中有满足条件(return)那项(有一项满足就可以) 有true 没有false
  • 参数:函数 三个参数(item,index,arr)
  • 返回值:true false
  • 是否修改原数组:不修改

0

  • every()

  • 作用:数组中的每一项都要满足条件才是true 否则false
  • 参数:函数 三个参数(item,index,arr)
  • 返回值:true false
  • 是否修改原数组:不修改

0

  • reduce()

  • 作用:一般用于求和
  • 参数:函数 三个参数(res,item,index,arr)
  • 返回值:true false
  • 是否修改原数组:不修改

0

参数可以有两个,第二个参数是初始值

0

  • reduceRight()

倒叙循环 从右向左循环

0

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值