2016-08-03 97 views
1

我有以下的陣列,尋找獨特的陣列中最有效的方法

var a = [1,2,3,4,5]; 
var b = [2,3,4,5,6]; 
var c = [4,5,6,7,8]; 
var d = [1,2,3,4,5]; 

什麼是找出是不同的陣列中的最有效的方法是什麼? I.e數組a,b和c是不同的,順序很重要。

+0

如果你說_「的順序事項」做_你的意思是'了'和'D'是一樣的,但'變種E = [5 ,4,3,2,1];'會有所不同,因爲相同的內容是不同的順序? –

+0

試試這個很簡單a.toString()=== b.toString() –

+0

可能很有趣:http://stackoverflow.com/questions/3115982/how-to-check-if-two-arrays-are-equal- with-javascript – Hitmands

回答

1

您可以使用 Array.prototype.every()使用JavaScript

var a = [1,2,3,4,5]; 
var b = [2,3,4,5,6]; 

var is_same = (a.length == b.length) && a.every(function(element, index) { 
return element === b[index]; 
}); 
+1

只有類型安全的解決方案。 – dandavis

1

一個有趣的方式比較數組將它們轉換爲字符串並進行比較。你可以JSON stringify他們或只是他們join這樣

a.join('') === b.join('') 

因爲你說的順序問題這個工作而已。我不知道使用JSON的stringify over join基元之間的基準。也許你可以嘗試一下。

+0

注意[1]和[「1」]和[[1]]全部匹配... – dandavis

1

這也可以這樣

a.toString() === b.toString() 
+0

注意'[1]'和'[「1」]'和[[1]]全部匹配那樣... – dandavis

+0

這個工作,不幸的是,我正在處理20 MB的JSON文件,它需要很長時間。 –

+0

@ParkTaecyeon這是很難做任何事情,然後找到一種方法來縮短文件,這是不是一個好主意,在20 MB的JSON文件的最佳做法。如果您發現它有用,請接受答案:-) –

相關問題