所以这就是我的困境,我已经做了几天的研究,试图找出解决方法。
问题:我的函数用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());
任何帮助都会超级棒!!!!
编辑:我也愿意以不同的方式做事。例子真的会有所帮助。答案 0 :(得分:0)
您可以使用custom compare function作为.sort()
,您可以在其中比较行的某些值。然后使用:
array.sort(customCompare).slice(0, 5);
答案 1 :(得分:0)
对元素进行排序的优雅方式:
$(this).find("*").sort(function(a, b){
return +b.innerHTML-a.innerHTML;
})
您可以使用slice()获取前5个元素