這篇“es6如何判斷兩個數(shù)組是否相等”文章的知識點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“es6如何判斷兩個數(shù)組是否相等”文章吧。
創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),孝感企業(yè)網(wǎng)站建設(shè),孝感品牌網(wǎng)站建設(shè),網(wǎng)站定制,孝感網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,孝感網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
步驟:1、用length屬性獲取兩個數(shù)組的長度,并判斷兩長度是否相等,語法“數(shù)組1.length==數(shù)組2.length”;2、如果長度相等,則用“new Set(數(shù)組)”將兩數(shù)組都轉(zhuǎn)換為set類型,用“Array.from(new Set([...集合1].filter(x=>集合2.has(x))))”獲取差集;3、判斷差集數(shù)組是否為空數(shù)組,如果是則兩數(shù)組相同,反之不相等。
判斷兩個數(shù)組是否相等,可以轉(zhuǎn)換思想變?yōu)榕袛鄡蓚€數(shù)組的長度是否相等且差集(包含不同元素)是否為空。
實(shí)現(xiàn)思想:
檢查兩個數(shù)組長度是否相等
如果長度相等,再判斷兩數(shù)組的差集是否為空
如果差集為空,則數(shù)組兩數(shù)組相等(因?yàn)闆]有不相同的元素)
如果差集不為空,則數(shù)組兩數(shù)組不相等(因?yàn)橛胁幌嗤脑兀?/p>
說明:如果數(shù)組有重復(fù)值,其數(shù)組長度不同,但沒有不相同的元素(差集為空)
var a=[1, 2, 3];
var b=[1,2,3,1,3];
但這樣的兩個數(shù)組不可能相等,因此需要先判斷數(shù)組長度是否相等。
實(shí)現(xiàn)步驟:
步驟1、使用length屬性分別獲取兩個數(shù)組的長度,并判斷兩長度是否相等
每個數(shù)組都有一個length 屬性,利用該屬性可返回數(shù)組的最大長度,即其值等于最大下標(biāo)值加 1。
var a=[1, 2, 3];
var b=[1, 2, 3];
console.log(a);
console.log(b);
if(a.length==b.length){
console.log("兩數(shù)組的長度相等");
}else{
console.log("兩數(shù)組的長度不相等");
}
步驟2:如果兩長度相等,則利用has()、filter()、from()方法來獲取兩數(shù)組的差集
has() 是set對象的一個方法,因此想要使用has()方法,需要先將數(shù)組轉(zhuǎn)為set集合類型。
newA = new Set(a);
newB = new Set(b);
set對象的has() 方法配合數(shù)組的filter()可以求兩個數(shù)組的交集,但交集元素會被包含在一個set集合中返回,不好進(jìn)行為空比較;因此,需要利用Array.from方法將集合轉(zhuǎn)為數(shù)組類型。
登錄后復(fù)制let differenceABSet = Array.from(new Set([...newA].filter(x => !newB.has(x))));
說明:
Array.from方法用于將兩類對象轉(zhuǎn)為真正的數(shù)組:類似數(shù)組的對象(array-like object)和可遍歷(iterable)的對象(包括 ES6 新增的數(shù)據(jù)結(jié)構(gòu) Set 和 Map)。
步驟3:判斷差集數(shù)組是否為空數(shù)組
如果差集數(shù)組為空數(shù)組,則兩數(shù)組相同
如果差集數(shù)組不為空數(shù)組,則兩數(shù)組不相同
if(differenceABSet.length==0){
console.log("兩數(shù)組相等");
}else{
console.log("兩數(shù)組不相等");
}
完整實(shí)現(xiàn)代碼(封裝為一個函數(shù))
function f(a, b) {
newA = new Set(a);
newB = new Set(b);
if (a.length == b.length) {
let differenceABSet = Array.from(new Set([...newA].filter(x => !newB.has(x))));
console.log("兩數(shù)組差集:");
console.log(differenceABSet);
if (differenceABSet.length == 0) {
console.log("兩數(shù)組相等");
} else {
console.log("兩數(shù)組不相等");
}
} else {
console.log("兩數(shù)組不相等");
}
}
示例1:檢查下面兩個函數(shù)是否相等
var a = [1, 2, 3];
var b = [1, 2, 3,3];
console.log(a);
console.log(b);
f(a, b);
示例2:檢查下面兩個函數(shù)是否相等
var a = [1, 2, 3];
var b = [1, 2, 4];
console.log(a);
console.log(b);
f(a, b);
說明:差集中的元素是從被比較的數(shù)組(第一個數(shù)組a
)中拿的。
以上就是關(guān)于“es6如何判斷兩個數(shù)組是否相等”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
文章名稱:es6如何判斷兩個數(shù)組是否相等
標(biāo)題來源:http://bm7419.com/article48/pcgehp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、搜索引擎優(yōu)化、網(wǎng)站導(dǎo)航、微信公眾號、移動網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)