Как отсортировать по значению объекта внутри другого объекта без преобразования в массив? - PullRequest
0 голосов
/ 14 октября 2019

Мне нужно отсортировать объект по значению для объекта внутри него. Можно ли отсортировать без преобразования в массив в первую очередь? Я создаю этот объект, проверяя, есть ли у 3 других массивов свое собственное свойство, и добавляя все это к одному объекту.

Я пробовал сортировать функции внутри и снаружи цикла for / in.

//how i created the object
var htmlDep = document.getElementById("departmentTable")
var tableElem = document.createElement("table");
var tdList = "";
tableElem.innerHTML = "<tr><th class='avdeling'>Avdeling</th><th class='avdeling'>Aktiv Ansatt</th><th class='avdeling'>Ny Ansatt</th><th class='avdeling'>Sluttet Ansatt</th></tr>"
var obj = {}
var distribution = ["manager", "salesMan", "consultant"]

for (var i = 0; i < distribution.length; i++) {
  var work = distribution[i];
  obj[work] = {
    active: 0,
    notActive: 0,
    quit: 0
  } // using 0 as default
  if (active.hasOwnProperty(work)) {
    obj[work].active = active[work]
  }
  if (notActive.hasOwnProperty(work)) {
    obj[work].notActive = notActive[work]
  }
  if (quit.hasOwnProperty(work)) {
    obj[work].quit = quit[work]
  }
  tdList += "<tr><td>" + work + "</td>" + "<td>" + obj[work].active + "</td>" + "<td>" + obj[work].notActive + "</td>" + "<td>" + obj[work].quit + "</td></tr>"
}

tableElem.innerHTML += tdList;
htmlDep.appendChild(tableElem)
//Object example
obj = {
  manager: {
    active: 450,
    notActive: 20,
    quit: 0
  },
  salesMan: {
    active: 150,
    notActive: 5,
    quit: 3
  },
  ceo: {
    active: 50,
    notActive: 55,
    quit: 0
  },
  consultant: {
    active: 5,
    notActive: 72,
    quit: 30
  }
}
<div id="departmentTable">
</div>

Я хочу отсортировать объект по значению notActive от высокого до низкого значения внутри HTML-таблицы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...