2016-08-03 71 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文件的最佳做法。如果您发现它有用,请接受答案:-) –