JSFiddle - React, Tailwind, and code Playground

by Tom M

JavaScript

let a = [2, 2, 3, 3];	//2s from here
let b = [2, 3, 3, 3]; //3s from here


function objectMaker(array, object) {
	array.forEach(function(x) {
  		if (object[x]) {
      object[x] += 1;
      } else {
      object[x] = 1;
      }    
  })
  return object;
}

let objectA = objectMaker(a,{});
let objectB = objectMaker(b,{});


let entriesB = Object.entries(objectB);
let entriesA = Object.entries(objectA);

function getHigher(a,b) {
	if (a > b) {
  return a;
  } else if (a === b){
  return a;
  } else {
  return b;
  }
}




let final = [];
for (let i = 0; i < getHigher(entriesA.length, entriesB.length); i++) {
	if (entriesA[i][0] == entriesB[i][0]) {
    final.push(Math.pow(entriesA[i][0], getHigher(entriesA[i][1], entriesB[i][1])));
  } else if (entriesA[i]) {
  final.push(Math.pow(entriesA[i][0]), entriesA[i][1]);
  } else if (entriesB[i]) {
   final.push(Math.pow(entriesB[i][0]), entriesB[i][1]);
  }
}


console.log(final);