Сортировать и для членов JSON цикла перед выводом на основе значения - PullRequest
0 голосов
/ 01 июля 2019

Я изучаю JavaScript уже 1 месяц и создаю веб-страницу для учебных целей, но я застрял на печати данных, основанных на верхних 10% и нижних 10%.Я загрузил все на Repl.it, это ссылка: https://repl.it/@YevgeniyMakkoye/Task2-RE

Страница, о которой я говорю, находится в assets / js / getAttendance.js

Код, который я 'm использует:

  var filteredMembers = [];
  actove = true;
  while (filteredMembers.length / jlen < 0.1 ||
  !filteredMembers.length) {
    for(let member of members){
      filteredMembers.push(member);
    }
    for (let i = 0; i < arrMemberVotes.length; i++) {
      if (arrMemberVotes[i] === arrMemberVotes) {
        arrMemberVotes.splice(i, 1);
      }
    }
    console.log(maxMinCalc(arrMissedVotes, false));
    console.log(filteredMembers);
  }

Но в этом коде вы найдете другую логику, которую я пробовал.Как я могу вернуть таблицу с% Missed?

Это fetchData.js, где dataSenate/dataHouse - это объекты JavaScript, связанные напрямую с JSON.

function getSenate() {
  json = dataSenate,
    json = json.results[0],
    jlen = json.num_results,
    members = json.members;
}

function getHouse() {
  json = dataHouse,
    json = json.results[0],
    jlen = json.num_results,
    members = json.members;
}

//GET ALL DATA:
function getData(counter) {
  memberParty = members[counter].party;
  memberState = members[counter].state;
  memberSeniority = members[counter].seniority;
  firstName = members[counter].first_name;
  middleName = members[counter].middle_name;
  lastName = members[counter].last_name;
  memberVotes = members[counter].votes_with_party_pct;
  missedVotes = members[counter].missed_votes;
  missedVotesPerc = members[counter].missed_votes_pct;
  spacer = " ";
  fullName = firstName.concat(spacer, middleName, spacer, lastName);
  if (fullName.includes("null") == true) {
    fullName = firstName.concat(spacer, lastName)

  } else {
    fullName = firstName.concat(spacer, middleName, spacer, lastName)
  }
}

1 Ответ

0 голосов
/ 01 июля 2019

Я нашел решение. Это код, который я использую для сортировки объекта по определенному значению:

var filtredDataDesc = Object.values(json.members);
  filtredDataDesc.sort((a, b) => (b.votes_with_party_pct > a.votes_with_party_pct) ? 1 : -1);
  var filtredDataAsc = Object.values(json.members);
  filtredDataAsc.sort((a, b) => (a.votes_with_party_pct > b.votes_with_party_pct) ? 1 : -1);
  var desFullName = [];
  var ascFullName = [];


  for (var i = 0; i <= 10; i++) {

    fullNameDesc = filtredDataDesc[i].first_name + " " + filtredDataDesc[i].middle_name + " " + filtredDataDesc[i].last_name;

    if(fullNameDesc.includes("null") == true){
      fullNameDesc = filtredDataDesc[i].first_name + " " + filtredDataDesc[i].last_name;
    } else {
      fullNameDesc = filtredDataDesc[i].first_name + " " + filtredDataDesc[i].middle_name + " " + filtredDataDesc[i].last_name;
    }

    fullNameAsc = filtredDataAsc[i].first_name + " " + filtredDataAsc[i].middle_name + " " + filtredDataAsc[i].last_name;
    if(fullNameAsc.includes("null") == true){
      fullNameAsc = filtredDataAsc[i].first_name + " " + filtredDataAsc[i].last_name;
    } else {
      fullNameAsc = filtredDataAsc[i].first_name + " " + filtredDataAsc[i].middle_name + " " + filtredDataAsc[i].last_name;
    }
    globalVariables();

    topTarget.innerHTML += oTr + oTd + fullNameDesc + cTd + oTd + filtredDataDesc[i].missed_votes + cTd + oTd + filtredDataDesc[i].votes_with_party_pct + cTd + cTr;
    bottomTarget.innerHTML += oTr + oTd + fullNameAsc + cTd + oTd + filtredDataAsc[i].missed_votes + cTd + oTd + filtredDataAsc[i].votes_with_party_pct + cTd + cTr;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...