JSFiddle - React, Tailwind, and code Playground
by Lisa French
JavaScript
// const arr1 = [1,2];
// const arr2 = [1,2,3];
const arr1 = [];
function areArraysDuplicated(arrValue) {
return arrValue.filter((index, value) => arrValue.indexOf(value) === index);
}
const areArraysEqual = (arr1, arr2) => {
const arr1WithoutDuplicates = arr1 ? areArraysDuplicated(arr1) : [];
const arr2WithoutDuplicates = arr2 ? areArraysDuplicated(arr2) : [];
console.log("arr1WithoutDuplicates", arr1WithoutDuplicates);
if (arr1 === null || arr2 === null) {
return false;
}
if (!arr2) {
return false;
}
const notArray = Array.isArray(arr1) || Array.isArray(arr2);
const arraysNotSameLength = arr1.length !== arr2.length ? true : false;
if (!notArray || arraysNotSameLength) {
return false;
} else {
const trueOrFalseArray = arr1.map((value, index) => {
if (arr1.includes(arr2[index])) {
return true;
} else {
return false;
}
});
const everythingTrue = trueOrFalseArray.every((item) => item === true);
return everythingTrue;
}
};
QUnit.test('Exactness', ( assert ) => {
assert.ok(areArraysEqual([1, 2, 3], [1, 2, 3]));
assert.notOk(areArraysEqual([1, 2, 3], [1, 2]));
assert.notOk(areArraysEqual([1, 2], [1, 2, 3]));
assert.notOk(areArraysEqual([1, 2, 4, 4], [1, 2, 3, 4]));
});
QUnit.test('Exceptions', ( assert ) => {
assert.ok(areArraysEqual([], []));
assert.notOk(areArraysEqual(1, 1));
assert.notOk(areArraysEqual([]));
assert.notOk(areArraysEqual([], true));
assert.notOk(areArraysEqual([], undefined));
assert.notOk(areArraysEqual(null, []));
assert.notOk(areArraysEqual([], "string"));
assert.notOk(areArraysEqual([], {}));
});
QUnit.test('Order does not matter', ( assert ) => {
assert.ok(areArraysEqual([1, 10, 2, 21], [1, 2, 10, 21]));
});
QUnit.test('Duplicates do not matter', ( assert ) => {
assert.ok(areArraysEqual([1, 10, 2, 21], [1, 2, 2, 10, 21]));
});
// QUnit.test('Compare Collections based on property', ( assert ) => {
// const...