JSFiddle - React, Tailwind, and code Playground
CSS
body {
margin:10px;
}
.pass {
color:green;
}
.fail {
color:red;
text-decoration:line-through;
}
JavaScript
/**
Write a function that given a list of non negative integers, arranges them such that they form the largest possible number. For example, given [50, 2, 1, 9], the largest formed number is 95021.
*/
function assert(expected, actual, desc) {
var res = $("#results");
var li = document.createElement("li");
li.className = expected == actual ? "pass" : "fail";
li.appendChild(document.createTextNode(desc));
res.append(li);
}
function comparator (eltA, eltB) {
var isBigger = ("" + eltA + eltB) > ("" + eltB + eltA);
return isBigger ? -1 : 1;
};
var findLargestNumber = function (array) {
var sorted = array.sort(comparator);
return parseInt(sorted.join(""), 10);
};
assert(585845, findLargestNumber([5, 58, 584]), "[5, 58, 584]");
assert(5858584, findLargestNumber([58, 584, 58]), "[58, 584, 58]");
assert(58554, findLargestNumber([55, 58, 4]), "[55, 58, 4]");
assert(21000, findLargestNumber([0, 0, 0, 1, 2]), "[0, 0, 0, 1, 2]");
assert(1, findLargestNumber([1]), "[1]");
assert(111, findLargestNumber([1, 1, 1]), "[1,1,1]");