JSFiddle - React, Tailwind, and code Playground
Custom array order
by tonytlwu
HTML
<pre id="debug"></pre>
JavaScript
var columns = ["Wed", "Tue", "Fri", "Thu"];
var values = [1,2,3,4];
function sortCustom (customOrder) {
var objArr = [];
var output = [];
var foundColumns = [];
for (var i = 0, l = columns.length; i < l; i++) {
objArr.push({
column: columns[i],
value: (values[i] !== undefined ? values[i] : 0)
});
}
for (i = 0, l = customOrder.length; i < l; i++) {
for (var j = 0, m = objArr.length; j < m; j++) {
if (objArr[j].column === customOrder[i]) {
output.push(objArr[j]);
foundColumns.push(customOrder[i]);
break;
}
}
}
for (i = 0, l = objArr.length; i < l; i++) {
if (foundColumns.indexOf(objArr[i].column) < 0) {
output.push(objArr[i]);
}
}
columns = [];
values = [];
for (i = 0, l = output.length; i < l; i++) {
columns.push(output[i].column);
values.push(output[i].value);
}
}
document.getElementById('debug').innerHTML = '';
document.getElementById('debug').innerHTML += JSON.stringify(columns) + '\n';
document.getElementById('debug').innerHTML += JSON.stringify(values) + '\n';
sortCustom(["Fri","Tue"]);
document.getElementById('debug').innerHTML += '\n';
document.getElementById('debug').innerHTML += JSON.stringify(columns) + '\n';
document.getElementById('debug').innerHTML += JSON.stringify(values) + '\n';
sortCustom(["Tue","Wed","Fri"]);
document.getElementById('debug').innerHTML += '\n';
document.getElementById('debug').innerHTML += JSON.stringify(columns) + '\n';
document.getElementById('debug').innerHTML += JSON.stringify(values) + '\n';