哪些方法改变原数组,哪些方法不改变原数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了哪些方法改变原数组,哪些方法不改变原数组相关的知识,希望对你有一定的参考价值。

参考技术A 1、shift:将一个元素删除并且返回删除元素,删除第一项

2、unshift:在原数组的最前端依次添加,并且返回新数组的长度

3、posh:在原数组的最后依次添加项,并返回新数组的长度

4、pop:将一个元素移除并返回移除的项,最后一项

5、reverse:反转数组的顺序

6、sort:对数组进行依次排序

7、splice:三个参数。第一个代表开始的下标,第二个代表 要删除的个数,第三个代表要替换的东西       返回被删除的数组

1、concat:拼接,连接多个数组

2、slice:提取,返回被提取的字符

3:join:将数组中所有元素以参数作为分隔符放入一个字符

4、map,filter,some,ever等不改变原数组

数组中的方法-- 会改变原数组的

我总结数组中的方法归为两类,一种是会改变原数组的,一种是不改变原数组的

这里将会介绍改变原数组的方法

1.pop()移除数组最后一个元素

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.pop();
console.log(fruits)

//[ ‘Banana‘, ‘Orange‘, ‘Apple‘ ]

2.push()把元素添加到数组尾部

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.push("Kiwi")
结果输出
Banana,Orange,Apple,Mango,Kiwi

3.reverse()在原数组中颠倒元素的顺序。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.reverse();
输出结果
Mango,Apple,Orange,Banana

4.shift ()移除数组的第一个元素。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.shift()
结果
Orange,Apple,Mango

5.sort ()在原数组中对数组元素进行排序。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort();
输出结果 Apple,Banana,Mango,Orange

6.splice()插入、删除或替换数组元素。

语法 array.splice(index,howmany,item1,.....,itemX

index 表示要操作数组的开始位置索引值,必填

howmany 表示要删除元素的个数 必须是数字  可以是0,如果没填就是删除从index 开始到数组的结尾

item1....   表示要添加到数组中的新值

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var newarray = fruits.splice(2);
console.log(fruits)
console.log(newarray)
结果是
[ ‘Banana‘, ‘Orange‘ ]
[ ‘Apple‘, ‘Mango‘ ]

改变原数组  返回的是被删除的元素的数组集合

7.unshift()在数组头部插入元素。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.unshift("Lemon","Pineapple");
fruits 将输出:

Lemon,Pineapple,Banana,Orange,Apple,Mango

上面7个分别是 添加元素   push unshift    移除元素  pop  shift   颠倒顺序  reverse   删除元素  splice   元素排序  sort

8.forEach  map  filter 等遍历数组的情况下 ,在遍历中区修改原数组

这里需要注意的是  在遍历中修改元素值的时候 有两种情况  一个是元素值是基本数据类型的   还有一种情况是元素值是引用数据类型的值

第一种情况下 直接去修改基本数据类型的值 是不会改变原数组的,需要借助 index  来实现改变  

let arr = [1,3,5,7,9];
                arr.forEach(function(item,index,arr){
                    arr[index] = 30;
                })
                console.log(arr); //输出 (5) [30, 30, 30, 30, 30]

第二种情况的时候

var fruits = [
  {
    name:‘aaa‘,
    id: 1
  },
  {
    name:‘bbb‘,
    id:2
  }
];


fruits.map(item => {
  if (item.id === 1){
    item.name = ‘Banana----new‘
  }
})

console.log(fruits)

以上是关于哪些方法改变原数组,哪些方法不改变原数组的主要内容,如果未能解决你的问题,请参考以下文章

js哪些方法改变原数组哪些不改变原数组

不改变原数组的方法

JS数组方法中哪些会改变原数组,哪些不会?

关于forEach方法能否改变数组中每一项的值

js数组的方法中,哪个方法不能改变自身数组牛客网

JS Array(数组)所有操作方法,改变数组方法、不改变数组方法