//数组是引用数据类型中的对象数据类型
//arr[length]=40,可以在数组末尾增加
//delete arr[0]可以删除第一项,但length不变,一般删除不用
//基于arr.length–可以实现数组末尾删除
/* let arr=[10,20,30,40];
console.log(arr[arr.length-1]);
let item=[]
for(var key in arr){
item=arr[key]
console.log('当前的索引是'+key+'对应的值为'+item)
} */
</script>
<script>
//数组中的内置方法
/* 1数组的增删改
push
向数组尾部添加元素
参数个数不固定,类型也不固定,都是向数组末尾添加元素
基于arr[length]==xxx实现
返回值是新增后数组的长度
原始数组改变
unshift
向数组头部插入元素
参数个数不定,类型不定
反回值也是新数组的长度
原始数组改变
pop
删除数组中最后一项
不需要参数
返回值是删除的元素
原始数组改变
基于arr.length--
shift
删除数组中第一项
不需要参数
返回值是删除的元素
原始数组改变
基于arr.length--
splice**
arr.splice(n,m)从索引n开始,删除m个元素
向数组指定位置删除
返回值是删除的元素组成的新数组
splice(0)代表从索引0开始删除到末尾
将所有元素存储到新数组
arr.splice(n,m,x)从索引n开始,删除m个元素,用x替换,替换值可以任意写几个,多余的相当于增加
返回值也是删除的元素组成的新数组
arr.splice(n,0,x..)从索引0开始,一个都不删,将x..插入到索引前
*/
/* 2数组的查询
slice
实现数组的查询,或数组截取
slice(n,m)从索引n开始查找到索引为m的数不包含m
返回值为查找的内容以新数组返回
原数组不变
slice(0)可以理解吧原始数组克隆岛新数组
concat
可以把多个数组拼接成新数组斌返回
原始数组不变
*/
/* 3转化为字符串
toString
将数组转化为以,分隔的字符串
原始数组不变
join
将数组转化以指定的字符为分隔的字符串
原始数组不变
eval
可以将字符串里面的表达式执行
*/
/* 验证是否包含某一项
4 indexOf
获取当前项在数组中输入元素第一次出现位置的索引
lastIndexOf
获取当前数组中输入元素最后一次出先位置的索引
如果数组中不包含该元素,则反回值为-1
includes
直接检测数组中是否包含某个元素,包含返回true,反之
*/
/* 5关于排序的
reverse
将原始数组倒过来排列,返回倒过来的旧数组
原始数组改变,在同一个堆里
sort
原始数组改变,默认不是按照每项的数字大小排序,而是按照每项的每一个字符编码来排序的
sort支持回调函数,一般用函数来写排序
sort((a,b)=>{
return a-b;升序
b-a 降序
})
*/
/* 6数组迭代
forEach函数
遍历数组中的每一项,有几项,执行几次
每次执行函数,都能获取到当前项的所引
不支持返回值
map
在forEach的基础上支持返回值
不会改变原来数组
函数中return 谁,就是替换谁
将替换后的结果存储到新数组中并返回