介绍
小编给大家分享一下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关于数组的方法有哪些区别