数组的认识
什么是数组?
索引从0开始,并且存放相同结构元素的集合叫数组
为什么有数组?(数组解决了什么问题)
相同结构的数据 统一管理(处理)问题
数组有什么特点?
1:由索引和数组元素组成
2:有序的 有长度(长度表示数组有多少个元素,每个都有自己的位置编号)
3:数组元素可以为js任意类型的数据
索引作用:查找元素,长度的作用:记录数组有多少元素
数组常用的API
1.concat 合并数组
arr1.concat(arr2) 表示吧数组arr1与数组arr2合并在一起(按顺序arr1在前)
有返回值,返回的是一个合并之后的新数组
对原数组没有影响
2.push 向数组的的尾部添加项
//push 向数组的的尾部添加项(常用于向数组中添加元素)---arr3.push(5,6,7,8,9)
//有返回值.返回的是添加项之后的数组的长度
//会改变原数组,如果想同时添加的多个项,用逗号隔开即可
3.pop删除数组中的最后一个
pop删除数组中的最后一个 ---arr3.pop()
有返回值,返回的是删除的项
会改变原数组
4.unshift 向数组的头部添加
unshift 向数组的头部添加 ----arr3.unshift(10,11,12)
有返回值,返回的是数组的长度
会改变原数组
5.shift 删除数组中的第一个
shift 删除数组中的第一个----arr3.shift()
有返回值,返回的是删除的项
改变原数组
6.toString();将数组转化为字符串
/数组转化为字符串-----可以arr6.toString()也可以String(arr6)都表示把arr6转化为字符串
返回的是转化的字符串
不会改变原数组
7.join() 将数组转化为字符串
oin() 将数组转化为字符串---arr6.join()
返回的是转化的字符串
不会改变原数组
如果join()括号中不添加值.默认就是英文逗号隔开,原数组不变
如果join()括号中添加值(值是分隔符),分隔符添加之后,每两项之间就会使用分隔符给隔开
8.reverse,反转数组
reverse,反转数组---arr6.reverse()
返回的是反转之后的数组
改变原数组
9.indexOf() 获取首个指定元素在数组中的索引位置
indexOf() 获取首个指定元素在数组中的索引位置:如果指定的值在数组中不存在,则返回-1;如果存在,则返回该元素第一次出现的索引值
lastIndexOf; 从后往前去查找首个元素出现的位置(返回的值仍然是正常的从左到右的索引值);
10.slice (start,end)截取
返回值是截取先来的数组
对原数组是没有影响的
arr1.slice(0,10)
start 开始截取的索引值,end 结束截取的索引值 不包括
只写一个值的话,就是从该索引开始往后截取,直到最后;
11.splice(start,count,newItem)
删除数组中的某些项
返回的是删除的数据
会改变原数组
start 开始删除的索引位置
count 要删除几个,非必填,如果不填,删除后面所有,如果是0,就不删除
newItem 从第三个参数往后,从开始删除的位置,添加新的项
12.delete. 删除某个,可以删除,但是位置会保留,数组的长度不会改变
//delete arr[0] 表示删除arr数组中的第一个
特别补充
data instanceof Object 验证数组或者对象(只有里面左右两个都是是数组或者对象,或者一个数组一个对象才返回true)
console.log(1 instanceof Object) //结果为false