我有以下的阵列,寻找独特的阵列中最有效的方法
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是不同的,顺序很重要。
我有以下的阵列,寻找独特的阵列中最有效的方法
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是不同的,顺序很重要。
您可以使用 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];
});
只有类型安全的解决方案。 – dandavis
一个有趣的方式比较数组将它们转换为字符串并进行比较。你可以JSON stringify
他们或只是他们join
这样
a.join('') === b.join('')
因为你说的顺序问题这个工作而已。我不知道使用JSON的stringify over join基元之间的基准。也许你可以尝试一下。
注意[1]和[“1”]和[[1]]全部匹配... – dandavis
这也可以这样
a.toString() === b.toString()
注意'[1]'和'[“1”]'和[[1]]全部匹配那样... – dandavis
这个工作,不幸的是,我正在处理20 MB的JSON文件,它需要很长时间。 –
@ParkTaecyeon这是很难做任何事情,然后找到一种方法来缩短文件,这是不是一个好主意,在20 MB的JSON文件的最佳做法。如果您发现它有用,请接受答案:-) –
如果你说_“的顺序事项”做_你的意思是'了'和'D'是一样的,但'变种E = [5 ,4,3,2,1];'会有所不同,因为相同的内容是不同的顺序? –
试试这个很简单a.toString()=== b.toString() –
可能很有趣:http://stackoverflow.com/questions/3115982/how-to-check-if-two-arrays-are-equal- with-javascript – Hitmands