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';