JS是否改变原数组的常用方法归纳
2019-01-02 本文已影响0人
_前端码农_
改变原数组的:
- shift:将第一个元素删除并且返回删除元素,空即为undefined
- unshift:向数组开头添加元素,并返回新的长度
- pop:删除最后一个并返回删除的元素
- push:向数组末尾添加元素,并返回新的长度
- reverse:颠倒数组顺序
- sort:对数组排序
- splice:splice(start,length,item)删,增,替换数组元素,返回被删除数组,无删除则不返回
不改变原数组的:
- concat:连接多个数组,返回新的数组
- join:将数组中所有元素以参数作为分隔符放入一个字符
- slice:slice(start,end),返回选定元素
- map,filter,forEach,some,every等不改变原数组
$.each(arr,(index,item){
item.index=index; //这样是可以改变的
})
这样是可以改变的,因为我们使用forEach方法的时候对于每个数据都创建了一个变量item,我们操作的是item变量,对于基本数据类型,el变量就是新创建的一个内存。el变量改变并不影响基本原来地址值的改变。而el变量对应的是引用数据类型时,实际还是一个引用地址,操作它,仍旧操作的是对应的堆内存。
forEach方法里操作对象生效,想要操作里面的基本数据类型,就用arr[i]的形式直接操作数组