es6如何判斷兩個數(shù)組是否相等

這篇“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];

es6如何判斷兩個數(shù)組是否相等

但這樣的兩個數(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ù)組的長度不相等");
}

es6如何判斷兩個數(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ù)組類型。

let differenceABSet = Array.from(new Set([...newA].filter(x => !newB.has(x))));

登錄后復(fù)制

es6如何判斷兩個數(shù)組是否相等

說明:

  • 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ù)組不相等");
}

es6如何判斷兩個數(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);

es6如何判斷兩個數(shù)組是否相等

示例2:檢查下面兩個函數(shù)是否相等

var a = [1, 2, 3];
var b = [1, 2, 4];
console.log(a);
console.log(b);
f(a, b);

es6如何判斷兩個數(shù)組是否相等

說明:差集中的元素是從被比較的數(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)

成都定制網(wǎng)站網(wǎng)頁設(shè)計