simple array compare and diff
by Stalk
HTML
<pre style="width: 500px; height: 300px;">
array1 | array2 | is_equal | difference
--------------------------------------------------
</pre>
JavaScript
diff = function (a1, a2) {
return a1.filter(i=>a2.indexOf(i)<0)
.concat(a2.filter(i=>a1.indexOf(i)<0))
}
compare = function (a1, a2) {
return a1.length == a2.length && a1.every((v,i)=>v === a2[i])
}
// test
var a1, a2, diffResult, compResult
a1 = [1,2,3]
a2 = [1,2,3]
compResult = compare(a1, a2)
diffResult = diff(a1, a2)
log()
a1 = [1,2,3]
a2 = [3,2,1]
compResult = compare(a1, a2)
diffResult = diff(a1, a2)
log()
a1 = [1,2,3]
a2 = [2,3,4]
compResult = compare(a1, a2)
diffResult = diff(a1, a2)
log()
a1 = [1,2,3]
a2 = ['1','2','3']
compResult = compare(a1, a2)
diffResult = diff(a1, a2)
log()
a1 = [1,2,3,4]
a2 = [1,2,3]
compResult = compare(a1, a2)
diffResult = diff(a1, a2)
log()
a1 = [1,2,3]
a2 = [1,2,3,4]
compResult = compare(a1, a2)
diffResult = diff(a1, a2)
log()
function log() {
document.getElementsByTagName('pre')[0].innerHTML += "["+a1.toString()+"] \t["+a2.toString()+"] \t"+compResult.toString()+"\t["+diffResult.toString()+"]\n"
}