JavaScript关于数组的方法有哪些区别

  介绍

小编给大家分享一下JavaScript关于数组的方法有哪些区别,希望大家阅读完这篇文章后大所收获、下面让我们一起去探讨吧!

在JavaScript里,有很多新增,移除,替换数组元素的方法,很多方法都能实现同一个功能,但是他们却有很大的不同之处,今天我们就来对比一下,JavaScript里的数组方法到底有什么奥秘。

在JavaScript提供了多种新增,移除,替换数组元素的方法,但是有些会影响原来的数组;有些则不会,它是新建了一个数组。

注意:区分以下两个方法的不同点:

array.splice()影响原来的数组

array.slice()不影响原来的数组

我。新增:影响原数组

使用array.push()和array.ushift()新增元素会影响原来的数组。

让mutatingAdd=[& # 39;一个# 39;& # 39;b # 39;, & # 39; c # 39;, & # 39; d # 39;, & # 39; e # 39;];   mutatingAdd.push (& # 39; f # 39;);//[& # 39;一个# 39;& # 39;b # 39;, & # 39; c # 39;, & # 39; d # 39;, & # 39; e # 39;, & # 39; f # 39;】   mutatingAdd.unshift (& # 39; z # 39;);//[& # 39;z # 39; & # 39; b # 39;, & # 39; c # 39;, & # 39; d # 39;, & # 39; e # 39;& # 39;f # 39;]

二世。新增:不影响原数组

两种方式新增元素不会影响原数组,第一种是array.concat ()。

const arr1=[& # 39;一个# 39;& # 39;b # 39;, & # 39; c # 39;, & # 39; d # 39;, & # 39; e # 39;];   const arr2=arr1.concat (& # 39; f # 39;);//[& # 39;一个# 39;& # 39;b # 39;, & # 39; c # 39;, & # 39; d # 39;, & # 39; e # 39;, & # 39; f # 39;)(注:原文有误,我做了修改。””——→“,”)   console.log (arr1);//[& # 39;一个# 39;& # 39;b # 39;, & # 39; c # 39;, & # 39; d # 39;, & # 39; e # 39;]

第二种方法是使用JavaScript的展开(传播)操作符,展开操作符是三个点(…)

const arr1=[& # 39;一个# 39;& # 39;b # 39;, & # 39; c # 39;, & # 39; d # 39;, & # 39; e # 39;];   const arr2=[…arr1 & # 39; f # 39;];//[& # 39;一个# 39;& # 39;b # 39;, & # 39; c # 39;, & # 39; d # 39;, & # 39; e # 39;, & # 39; f # 39;】   const arr3=[& # 39; z # 39;……arr1);//[& # 39;z # 39; & # 39;一个# 39;,& # 39;b # 39;, & # 39; c # 39;, & # 39; d # 39;, & # 39; e # 39;]

展开操作符会复制原来的数组,从原数组取出所有元素,然后存入新的环境。

三世。移除:影响原数组

使用array.pop()和array.shift()移除数组元素时,会影响原来的数组。

让mutatingRemove=[& # 39;一个# 39;& # 39;b # 39;, & # 39; c # 39;, & # 39; d # 39;, & # 39; e # 39;];   mutatingRemove.pop ();//[& # 39;一个# 39;& # 39;b # 39;, & # 39; c # 39;, & # 39; d # 39;】   mutatingRemove.shift ();//[& # 39;b # 39; & # 39; c # 39;, & # 39; d # 39;]

array.pop()和array.shift()返回被移除的元素,你可以通过一个变量获取被移除的元素。

让mutatingRemove=[& # 39;一个# 39;& # 39;b # 39;, & # 39; c # 39;, & # 39; d # 39;, & # 39; e # 39;];   const returnedValue1=mutatingRemove.pop ();   console.log (mutatingRemove);//[& # 39;一个# 39;& # 39;b # 39;, & # 39; c # 39;, & # 39; d # 39;】   console.log (returnedValue1);//& # 39;e # 39;   const returnedValue2=mutatingRemove.shift ();   console.log (mutatingRemove);//[& # 39;b # 39; & # 39; c # 39;, & # 39; d # 39;】   console.log (returnedValue2);//& # 39;一个# 39;

array.splice()也可以删除数组的元素。

让mutatingRemove=[& # 39;一个# 39;& # 39;b # 39;, & # 39; c # 39;, & # 39; d # 39;, & # 39; e # 39;];   mutatingRemove。拼接(0,2);//[& # 39;c # 39; & # 39; d # 39;, & # 39; e # 39;]

像array.pop()和array.shift()一样,array.splice()同样返回移除的元素。

让mutatingRemove=[& # 39;一个# 39;& # 39;b # 39;, & # 39; c # 39;, & # 39; d # 39;, & # 39; e # 39;];   让returnedItems=mutatingRemove。拼接(0,2);   console.log (mutatingRemove);//[& # 39;c # 39; & # 39; d # 39;, & # 39; e # 39;】   console.log (returnedItems)//[& # 39;一个# 39;& # 39;b # 39;]

第四。移除:不影响原数组

JavaScript的array.filter()方法基于原数组创建一个新数组,新数组仅包含匹配特定条件的元素。   const arr1=[& # 39;一个# 39;& # 39;b # 39;, & # 39; c # 39;, & # 39; d # 39;, & # 39; e # 39;];   const arr2=arr1。过滤器(=比;一个!==& # 39;e # 39;);//[& # 39;一个# 39;& # 39;b # 39;, & # 39; c # 39;, & # 39; d # 39;)(注:原文有误,我做了修改)//或者   const arr2=arr1。过滤器(=比;{   返回一个!==& # 39;e # 39;;   });//[& # 39;一个# 39;& # 39;b # 39;, & # 39; c # 39;, & # 39; d # 39;)(注:原文有误,我做了修改)

JavaScript关于数组的方法有哪些区别