JSFiddle - React, Tailwind, and code Playground

by slawe

JavaScript

var table = ['first_name', 'random_5', 'last_name', 'file_id', 'date', 'vin', 'model', 'year'],
		csv = ['first_name', 'file_id', 'random_1', 'date', 'last_name', 'random_2', 'vin', 'model', 'year', 'random_3', 'random_4'],
    split = {},
		merge = [];
    
compare({
	table: table,
  csv: csv,
  result: merge,
  merge: function() {
  	return diff(this.csv, this.table);
  }
});

console.log(merge);

function diff(a, b) {
    return a.filter(function(i) {
    	return b.indexOf(i) < 0;
    });
};
    
function compare(obj) {
    return obj.table.filter(function(i) {
    	if (obj.csv[obj.csv.indexOf(i)] != undefined) {
        split = {
          table: i,
          csv: [obj.csv[obj.csv.indexOf(i)]]
        };
      } else {
      	split = {
          table: i,
          csv: obj.merge()
        };
      }
      obj.result.push(split);
    });
};