javascript - 根据值在输出之前对 JSON 成员进行排序和 for 循环
问题描述
我现在学习 JavaScript 1 个月了,我正在创建一个用于学习目的的网页,但我坚持打印基于前 10% 和后 10% 的数据。我已经在 Repl.it 上上传了所有内容,这是链接:https ://repl.it/@YevgeniyMakkoye/Task2-RE
我正在谈论的页面位于 assets/js/getAttendance.js
我正在使用的代码是:
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)
}
}
解决方案
我找到了解决方案。这是我用来根据特定值对对象进行排序的代码:
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;
推荐阅读
- java - 如何使用文本文件中的记录创建对象 (Java)
- mysql - 除了第一个前缀,我如何匹配其余数据
- dictionary - 设置默认谷歌地图位置
- angular - 如何扩展 NgbDropdown 或为其编写包装器?
- symfony - 使用 Symfony / API 平台提供验证组上下文
- css - 在 SharePoint Online 中编辑后 Css 文件不受影响
- python - 正则表达式匹配输出文件中的最后一个和第一个数字
- go - Golang 数据作为 interface{} 恐慌
- c++ - 是否可以使用在没有命名空间的命名空间中声明的类名::
- javascript - 在 React 中带有导入模块的 Web Worker