Check Similarity
Check if two arrays are similar to one another, without using sort.
const arr1 = [1, 2, 3, 4, 5];
const arr2 = [5, 4, 3, 2, 1];
const arr3 = [5, 4, 3, 2, 1, 6];
function similar(a, b) {
const bset = new Set(b);
return a.length === b.length && a.reduce((prev, curr) => {
if (!prev) return false;
if (bset.has(curr) < 0) return false;
return true;
}, true);
}
// preferred solution.
function similar2(a, b) {
const bset = new Set(b);
return a.length === b.length && a.every(num => bset.has(num));
}
console.log(similar2(arr1, arr2)); // true
console.log(similar2(arr1, arr3)); // false