es5中可以利用for語(yǔ)句和indexOf()函數(shù)來(lái)實(shí)現(xiàn)數(shù)組去重,語(yǔ)法「for(i=0;i
本教學(xué)操作環(huán)境:windows7系統(tǒng)、ECMAScript 6版、Dell G3電腦。
es5 陣列去重
使用indexOf(可傳回某個(gè)指定的字串值在字串中首次出現(xiàn)的位置,如果首次出現(xiàn),則傳回-1)
var?arr?=?[1,2,3,1,3,4,5]; Array.prototype.myInfo?=?function(){ var?newArr?=?[]; for(var?i=0;i<arr.length var if newarr return console.log><p><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/024/356e180a6b80e6d664a8d03b344e4adc-0.png" class="lazy" alt="es5和es6怎麼實(shí)現(xiàn)陣列去重"></p> <h2> <a id="es6__21"></a><strong>es6 陣列去重</strong> </h2> <p><a id="1_Arrayfrom__Set_22"></a><strong><span style="font-size: 16px;">#1. Array.from 和Set</span></strong></p> <p></p> <p><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/024/2956a9f89472bd2cc281f9dbc15d5718-1.png" class="lazy" alt="es5和es6怎麼實(shí)現(xiàn)陣列去重"></p> <p><a id="2_rest__Set_33"></a><strong><span style="font-size: 16px;"></span></strong></p> <p><strong></strong></p> <p> ##Set不允許有重複的元素<strong><pre class="brush:php;toolbar:false"> let?arr?=?[1,2,1,2,3]; let?result?=?new?Set(arr); console.log(result);? console.log(Array.from(result));
let?arr?=?[1,2,1,2,3]; let?result?=?new?Set(arr); console.log(result);? console.log(...result);? console.log([...result]);? console.log([...new?Set(arr)]);######## ####【相關(guān)推薦:###javascript影片教學(xué)###、###web前端###】####
以上是es5和es6怎麼實(shí)現(xiàn)陣列去重的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線(xiàn)上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門(mén)文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6
視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版
神級(jí)程式碼編輯軟體(SublimeText3)

在ES6中,可以利用數(shù)組物件的reverse()方法來(lái)實(shí)現(xiàn)數(shù)組反轉(zhuǎn),該方法用於顛倒數(shù)組中元素的順序,將最後一個(gè)元素放在第一位,而第一個(gè)元素放在最後,語(yǔ)法「array.reverse()」。 reverse()方法會(huì)修改原始數(shù)組,如果不想修改需要配合擴(kuò)充運(yùn)算子「...」使用,語(yǔ)法「[...array].reverse()」。

async是es7的。 async和await是ES7中新增內(nèi)容,是對(duì)於非同步操作的解決方案;async/await可以說(shuō)是co模組和生成器函數(shù)的語(yǔ)法糖,用更清晰的語(yǔ)意解決js非同步程式碼。 async顧名思義是「非同步」的意思,async用於聲明一個(gè)函數(shù)是異步的;async和await有一個(gè)嚴(yán)格規(guī)定,兩者都離不開(kāi)對(duì)方,且await只能寫(xiě)在async函數(shù)中。

為了瀏覽器相容。 ES6作為JS的新規(guī)範(fàn),加入了許多新的語(yǔ)法和API,但現(xiàn)代瀏覽器對(duì)ES6新特性支援不高,所以需將ES6程式碼轉(zhuǎn)換為ES5程式碼。在微信web開(kāi)發(fā)者工具中,會(huì)預(yù)設(shè)使用babel將開(kāi)發(fā)者ES6語(yǔ)法程式碼轉(zhuǎn)換為三端都能很好支援的ES5的程式碼,幫助開(kāi)發(fā)者解決環(huán)境不同所帶來(lái)的開(kāi)發(fā)問(wèn)題;只需要在專(zhuān)案中配置勾選好「ES6轉(zhuǎn)ES5」選項(xiàng)即可。

步驟:1、將兩個(gè)陣列分別轉(zhuǎn)換為set類(lèi)型,語(yǔ)法「newA=new Set(a);newB=new Set(b);」;2、利用has()和filter()求差集,語(yǔ)法“ new Set([...newA].filter(x =>!newB.has(x)))”,差集元素會(huì)被包含在一個(gè)set集合中返回;3、利用Array.from將集合轉(zhuǎn)為數(shù)組類(lèi)型,語(yǔ)法“Array.from(集合)”。

es5中可以利用for語(yǔ)句和indexOf()函數(shù)來(lái)實(shí)現(xiàn)數(shù)組去重,語(yǔ)法“for(i=0;i<數(shù)組長(zhǎng)度;i++){a=newArr.indexOf(arr[i]);if(a== -1){...}}」。在es6中可以利用擴(kuò)充運(yùn)算子、Array.from()和Set來(lái)去重;需要先將陣列轉(zhuǎn)為Set物件來(lái)去重,然後利用擴(kuò)充運(yùn)算子或Array.from()函數(shù)來(lái)將Set物件轉(zhuǎn)回?cái)?shù)組即可。

PHP的array_unique()函數(shù)用來(lái)移除陣列中重複元素,其預(yù)設(shè)使用嚴(yán)格相等(===)。我們可以透過(guò)自定比較函數(shù)來(lái)指定去重依據(jù):建立自定比較函數(shù),指定去重的標(biāo)準(zhǔn)(例如根據(jù)元素長(zhǎng)度);將自訂比較函數(shù)作為第三個(gè)參數(shù)傳遞給array_unique()函數(shù),即可根據(jù)指定的標(biāo)準(zhǔn)移除重複元素。

在es6中,暫時(shí)性死區(qū)是語(yǔ)法錯(cuò)誤,是指let和const命令使區(qū)塊形成封閉的作用域。在程式碼區(qū)塊內(nèi),使用let/const指令宣告變數(shù)之前,變數(shù)都是不可用的,在變數(shù)宣告之前屬於該變數(shù)的「死區(qū)」;這在語(yǔ)法上,稱(chēng)為「暫時(shí)性死區(qū)」。 ES6規(guī)定暫時(shí)性死區(qū)和let、const語(yǔ)句不出現(xiàn)變量提升,主要是為了減少運(yùn)行時(shí)錯(cuò)誤,防止在變量聲明前就使用這個(gè)變量,從而導(dǎo)致意料之外的行為。

在es6中,可以利用array物件的length屬性來(lái)判斷數(shù)組裡總共有多少項(xiàng),即取得數(shù)組中元素的個(gè)數(shù);該屬性可傳回?cái)?shù)組中元素的數(shù)組,只需要使用「array.length」語(yǔ)句即可傳回表示數(shù)組物件的元素個(gè)數(shù)的數(shù)值,也就是長(zhǎng)度值。
