数组是一种特殊的对象,js中并没有真正的数组,只是用对象模拟数组。
典型数组和js数组的区别
典型数组
元素的数据类型相同
使用连续的内存存储
通过数字线标获取元素
js数组
元素的数据类型可以不同
内存不一定是连续的(对象是随机存储的)
不能通过数组下标访问, 而是通过字符串下标访问
js中数组方法及分类
一 操作使原数组改变
1.增
unshift 像数组的首位正价若干元素,返回新数组的长度
push 像数组的末尾增加若干个元素,返回新的长度
2.删
shift 删除并返回数组第一个元素
pop 删除并返回最后一个元素
3.改
splice 删除数组中的元素,并添加新的元素
4.其它
sort 对数组元素进行排序。
reverse 反转数组中元素的顺序
二 操作原数组不变
1.转字符串
toString() 将数组转化为字符,相当于不传参的join
join 用指定分隔符将数组化为字符,若不传参数,默认为逗号。
2.遍历
forEach() 遍历数组:内部接收callback,callback 有三个参数,分别为元素,索引,
自身,没有返回值
map() 遍历并修改,基本等同于 forEach,可以有发回执
filter() 遍历筛选,返回函数内写判断条件,返回符合条件的值的数组成的数组。
every() 遍历并判断,每一项都符合条件返回true,有一项为false时停止,返回 false
some() 遍历并判断(与every),只要一项条件符合就返回true,每一项都不符合
返回false
reduce() 归并,从数组的第一项开始,逐个遍历到最后,迭代数组的所有项,
然后构建一个最终的返回值。
3.其它
slice(m,n) 从m开始截取n位元素,当n省略或n=0时,选取元素字节到最后一位
indexOf() 从左到右查询在数组中的位置,返回索引,若没有查到返回-1
lastIndexOf() 从右像左查询值在数组中的位置(与indexOf顺序相反),返回索引,
若没有查到返回-1