删元素

跟删对象元素一样:

  1. let arr = ['a','b','c']
  2. delet arr['0']
  3. arr

数组的长度并没有改变,length 还是为3
image.png

稀疏数组

image.png

通过修改 length 删元素

image.png
⚠️不要随便修改length

删除头部元素 shift

image.png

删除尾部元素 pop

image.png

删除中间元素 splice

  • 删除 index 的一个元素

image.png

  • 在删除的位置添加元素

image.png

查看元素

查看所有属性名、属性值

适合对象
image.png

查看数字(字符串)属性名和值

for循环

image.png

forEach遍历数组

image.png
自己写forEach

  1. function forEach(array, fn){
  2. for(let i = 0; i<array.length; i++){
  3. fn(array[i], i, array)
  4. }
  5. }

forEach 用for 访问 array 的每一项
对每一项调用 fn(array[i], i, array)
为什么要传入 array 呢?规定如此。

for 和 forEach 的区别

  • for 循环里面可以有 break、continue。forEach不支持
  • for 是关键字,forEach是函数。for 循环没有函数作用域,只有块级作用域。forEach是函数作用域。

查看单个属性

跟对象一样

  1. let arr = [111, 222, 333]
  2. arr[0]

索引越界

  1. arr[arr.length] === undefined
  2. arr[-1] === undefined

越界会报错:读取了 undefined 的 toString 属性,即undefined.toString
image.png

查看元素是否在数组里

arr.indexOf(item)
存在返回索引,否则返回 -1:
image.png

使用条件查找元素

arr.find(item => item%2 === 0//找第一个偶数
image.png

使用条件查找元素的索引

arr.findIndex(item => item%2 === 0//找第一个偶数的索引
image.png

增加元素

在尾部添加元素 push

image.png

在头部添加元素 unshift

image.png

在中间添加元素 splice

image.png

修改元素

splice方法

image.png

反转顺序

arr.reverse()//修改原数组
image.png

反转字符串

字符串没有reverse()方法,通过splice('')将之变为数组,然后再reverse(),最后通过join('')变回字符串
image.png

自定义顺序 sort

参考文章
arr.sort((a,b) => a-b)
image.png
对对象中的属性排序:
image.png
简单写法
image.png