对包含 20 个变量的列表进行排序,然后选择前五个变量
Sort a list of 20 variables, and pick the top five
这就是我的困境,我做了几天的研究,试图找出如何解决它。
问题:我有一个函数,可以使用js读取xml文件的行,然后将某些行(a1,a2,a3等)存储到变量/数组中。然后,我需要按值对它们进行排序,并选择前五个最大的数字,并使用它们的 id 从 xml 文件中选择其他信息。
例如,我有 a1、a4、a5、a6 和 a2 是这个文件的最大行(值因文件而异)。然后,我需要在选择这些变量的情况下,从 10 行中获取具有相似名称的数据并对它们执行数学方程(新行与第一行相同,只是末尾带有"a"或"b")。
我的理论解决方案:将 xml 中的行读取到一个数组中,然后将相应的行读取到另外两个数组中。然后,当我对第一个数组进行排序时,我可以获取前五个数组的单元格名称,并使用它来定义我使用其他两个数组中的哪些数组单元格来完成我的方程。
这是我的三个数组。
indSort[0] = Number($(this).find("n0").text());
indSort[1] = Number($(this).find("n1").text());
indSort[2] = Number($(this).find("n2").text());
indSort[3] = Number($(this).find("n3").text());
indSort[4] = Number($(this).find("n4").text());
indSort[5] = Number($(this).find("n5").text());
indSort[6] = Number($(this).find("n6").text());
indSort[7] = Number($(this).find("n7").text());
indSort[8] = Number($(this).find("n8").text());
indSort[9] = Number($(this).find("n9").text());
indSort[10] = Number($(this).find("n10").text());
indSort[11] = Number($(this).find("n11").text());
indSort[12] = Number($(this).find("n12").text());
indSort[13] = Number($(this).find("n13").text());
indSort[14] = Number($(this).find("n14").text());
indSort[15] = Number($(this).find("n15").text());
indSort[16] = Number($(this).find("n16").text());
indSort[17] = Number($(this).find("n17").text());
indSort[18] = Number($(this).find("n18").text());
indSort[19] = Number($(this).find("n19").text());
indSort[20] = Number($(this).find("n20").text());
indSorta[0] = Number($(this).find("n0a").text());
indSorta[1] = Number($(this).find("n1a").text());
indSorta[2] = Number($(this).find("n2a").text());
indSorta[3] = Number($(this).find("n3a").text());
indSorta[4] = Number($(this).find("n4a").text());
indSorta[5] = Number($(this).find("n5a").text());
indSorta[6] = Number($(this).find("n6a").text());
indSorta[7] = Number($(this).find("n7a").text());
indSorta[8] = Number($(this).find("n8a").text());
indSorta[9] = Number($(this).find("n9a").text());
indSorta[10] = Number($(this).find("n10a").text());
indSorta[11] = Number($(this).find("n11a").text());
indSorta[12] = Number($(this).find("n12a").text());
indSorta[13] = Number($(this).find("n13a").text());
indSorta[14] = Number($(this).find("n14a").text());
indSorta[15] = Number($(this).find("n15a").text());
indSorta[16] = Number($(this).find("n16a").text());
indSorta[17] = Number($(this).find("n17a").text());
indSorta[18] = Number($(this).find("n18a").text());
indSorta[19] = Number($(this).find("n19a").text());
indSorta[20] = Number($(this).find("n20a").text());
indSortb[0] = Number($(this).find("n0b").text());
indSortb[1] = Number($(this).find("n1b").text());
indSortb[2] = Number($(this).find("n2b").text());
indSortb[3] = Number($(this).find("n3b").text());
indSortb[4] = Number($(this).find("n4b").text());
indSortb[5] = Number($(this).find("n5b").text());
indSortb[6] = Number($(this).find("n6b").text());
indSortb[7] = Number($(this).find("n7b").text());
indSortb[8] = Number($(this).find("n8b").text());
indSortb[9] = Number($(this).find("n9b").text());
indSortb[10] = Number($(this).find("n10b").text());
indSortb[11] = Number($(this).find("n11b").text());
indSortb[12] = Number($(this).find("n12b").text());
indSortb[13] = Number($(this).find("n13b").text());
indSortb[14] = Number($(this).find("n14b").text());
indSortb[15] = Number($(this).find("n15b").text());
indSortb[16] = Number($(this).find("n16b").text());
indSortb[17] = Number($(this).find("n17b").text());
indSortb[18] = Number($(this).find("n18b").text());
indSortb[19] = Number($(this).find("n19b").text());
indSortb[20] = Number($(this).find("n20b").text());
任何帮助都会很棒!!!
编辑:我也愿意以不同的方式做事。例子真的会有所帮助。
您可以使用自定义比较函数进行.sort()
,您可以在其中将行的某些值相互比较。然后只使用:
array.sort(customCompare).slice(0, 5);
一种对元素进行排序的优雅方式:
$(this).find("*").sort(function(a, b){
return +b.innerHTML-a.innerHTML;
})
之后你可以使用 slice() 获取前 5 个元素
相关文章:
- AngularJS-在JSON选择器中使用变量名
- 通过Ember颜色选择器更新SCSS变量
- 连接变量 + 选择器
- 在 Jquery 中更改变量选择器的属性
- 需要D3中条形图上关于年份和犯罪人数变量选择的帮助
- 带有变量选择器的 Jquery 不起作用
- 有没有办法在javascript或jquery中创建变量选择器
- 如何使用变量选择要搜索的对象的属性
- 如何显示使用变量选择的单选按钮
- 如何根据 Docker 环境变量选择要复制的文件
- jQuery 变量选择器
- Javascript变量-选择和混合
- 如何使用jquery检查变量选择器中的属性
- JQuery val()未定义的文本区域与变量选择器
- 根据变量选择复选框
- JQuery使用变量选择单选按钮
- Jquery不与变量选择器工作
- Jquery,根据其他变量选择一个特定的2d数组
- jQuery .on Event不能与变量选择器一起工作
- 使用变量选择JSON数组元素