Why doesn’t my test function return an object when it is called?
I edited my test function with help from @JeremyLT 's comment.
Thank you for your attention.
function sumCommon(...Args) {
const arrElAndArgsIndexArr = Args.map((el,i) => el = el.map(e => e = [e,i]));
const arrElAndArgsIndexArrFlatSorted = arrElAndArgsIndexArr.flat().sort().sort((a,b) => a[1] - b[1]);
let zeroToAllArgsElLength = 0;
let innerIndex = 0;
let sumArr = [];
while(zeroToAllArgsElLength !== arrElAndArgsIndexArrFlatSorted.length * arrElAndArgsIndexArrFlatSorted.length){
if(zeroToAllArgsElLength + 1 % arrElAndArgsIndexArrFlatSorted.length === 0){
innerIndex = -1;
}
innerIndex += 1;
zeroToAllArgsElLength += 1;
for(let i = 0; i < arrElAndArgsIndexArrFlatSorted.length; i++){
if(arrElAndArgsIndexArrFlatSorted[innerIndex][0] === arrElAndArgsIndexArrFlatSorted[i][0] && arrElAndArgsIndexArrFlatSorted[innerIndex][1] !== arrElAndArgsIndexArrFlatSorted[i][1]){
if(i !== innerIndex) sumArr.push(arrElAndArgsIndexArrFlatSorted[i][0]);
}
}
}
return sumArr.reduce((acc,el) => acc + el, 0);
}
function test(){
const testResultsObject = {};
testResultsObject.test1 = sumCommon([1, 2, 3], [5, 3, 2], [7, 3, 2]) === 5? "passed": "failed";
testResultsObject.test2 = sumCommon([1, 2, 2, 3], [5, 3, 2, 2], [7, 3, 2, 2]) === 7? "passed": "failed";
testResultsObject.test3 = sumCommon([1], [1], [1]) === 1? "passed": "failed";
testResultsObject.test4 = sumCommon([1], [1], [2]) === 0? "passed": "failed";
testResultsObject.test5 = sumCommon([1, 2, 2, 3, 2], [5, 3, 2, 2, 1], [7, 3, 2, 2, 1]) === 8? "passed": "failed";
return testResultsObject;
}