Попытался исправить твой код и что то только так получилось
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<style>
td{
height: 30px; width: 80px; text-align: center;
}
</style>
<script>
function compareNumeric(a, b) {
if (a > b) return 1;
if (a < b) return -1;
}
function createTable(row, col, parent){
var table = document.createElement('table'), mas = [];
for (var i=0; i<row; i++) {
var tr = table.insertRow(i); mas[i] = [];
for (var j=0; j< col; j++) {
var td = tr.insertCell(j);
var color = ("000000" + (Math.random() * 16777215 | 0).toString(16)).slice(-6);
td.innerHTML = "#" + color;
mas[i].push(color);
}
}
parent.appendChild(table);
return mas;
}
var body = document.body;
var tbl = createTable(2, 9, body);
var new_mas = mas.map(function(ar) {
return ar.sort(function(a,b) {
return parseInt(a, 16) - parseInt(b, 16)
})
})
console.log(new_mas);
createTable(2, 9, body, new_mas);
</script>
</body>
</html>