Multi Field JS Sort

by Bryson Murray

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="test">

</div>

JavaScript

var data = [
	{
    "hit_id": "1117805",
    "is_visable": true,
    "inital_page_interaction": true,
    "last_focus_time": 1554917220488,
    "on_support_center": true,
    "current_page": "support_center"
  },  
  {
    "hit_id": "1117401",
    "is_visable": false,
    "inital_page_interaction": true,
    "last_focus_time": 1554916463948,
    "on_support_center": true,
    "current_page": "support_center"
  },
  {
    "hit_id": "1117406",
    "is_visable": false,
    "inital_page_interaction": true,
    "last_focus_time": 1554916468405,
    "on_support_center": true,
    "current_page": "support_center"
  },
  {
    "hit_id": "1117720",
    "is_visable": false,
    "inital_page_interaction": false,
    "last_focus_time": 1554917022970,
    "on_support_center": true,
    "current_page": "support_center"
  },
  {
    "hit_id": "1117715",
    "is_visable": false,
    "inital_page_interaction": true,
    "last_focus_time": 1554917027939,
    "on_support_center": true,
    "current_page": "support_center"
  },
  {
    "hit_id": "1117768",
    "is_visable": false,
    "inital_page_interaction": false,
    "last_focus_time": 1554917084584,
    "on_support_center": true,
    "current_page": "support_center"
  },
  {
    "hit_id": "1117777",
    "is_visable": true,
    "inital_page_interaction": true,
    "last_focus_time": 1554917175511,
    "on_support_center": true,
    "current_page": "support_center"
  }];

var data_sort_priority_list = [
		{'field':'visibility', 'order_by_desc': true},
		{'field':'last_focus_time', 'order_by_desc': true},
		{'field':'inital_page_interaction', 'order_by_desc': true},
		{'field':'hit_id', 'order_by_desc': true},
		{'field':'current_page', 'order_by_desc': true},
		{'field':'on_support_center', 'order_by_desc': true}
];
  
var page_info_priority_sort = function(page_info, sort_priority_list, trim) {
  trim = trim || true;
  if(!sort_priority_list){
    // needs a deep copy of the default list
    sort_priority_list = $.extend(true,...