美文网首页js css html
改变原数组的处理方法以及如何避免改变原数组

改变原数组的处理方法以及如何避免改变原数组

作者: 扶得一人醉如苏沐晨 | 来源:发表于2022-11-17 09:18 被阅读0次

1.可以改变原数组的方法

pop():删除数组最后一个元素,并返回该元素
push():在数组尾部添加元素,并返回更新后的数组长度
shift():删除数组的第一个元素,并返回该元素
unshift():在数组第一位添加元素,并返回更新后的数组长度
sort():对数组排序(按字符ASCII进行排序),也可添加回调函数按照想要的规则排序

//升序
arr.sort((a,b)=>a-b)
//降序
arr.sort((a,b)=>b-a)

reverse():数组反转
splice(index, howmany, 新数据):返回被删除元素所组成的数组。

index —— 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
howmany —— 必需。要删除的项目数量。如果设置为 0,则不会删除项目。
item1, …, itemX —— 可选。向数组添加的新项目。

2.基本数据类型组成的数组如何避免被改变

注意这里说的是基本数据类型的数组,如果是引用数据类型的数组,改变数组里面对象某一个属性,原数组还是会改变,如下

const arr = [{name:"1"}]
const arr2 = arr.slice()
arr2[0].name = '2'
console.log(arr,arr2)
[{name: '2'}]
[{name: '2'}]

const arr = [1]
const arr2 = arr.slice()
arr2[0] = 2
console.log(arr,arr2)
[1] [2]

方法一:slice()

var b1 = a.slice();

slice介绍
范围截取

var arr = [1, 2, 3, 4, 5];
var newArr = arr.slice(1, 4);
console.log(newArr); // [2, 3, 4]

从某个位置开始截取到数组末尾

var newArr = arr.slice(1);
console.log(newArr); // [2, 3, 4, 5]

整个截取

var newArr = arr.slice();
console.log(newArr); // [1, 2, 3, 4, 5]

方法二:concat()

var b2 = [].concat(a);

方法三:JSON.parse(JSON.stringify())

//这个不管是基本类型的数组还是引用类型的数组都适用
var b3 = JSON.parse(JSON.stringify(a));

相关文章

网友评论

    本文标题:改变原数组的处理方法以及如何避免改变原数组

    本文链接:https://www.haomeiwen.com/subject/pncexdtx.html