AS2 从数组中提取前 5 个
Posted
技术标签:
【中文标题】AS2 从数组中提取前 5 个【英文标题】:AS2 Extract top 5 from array 【发布时间】:2017-10-12 19:28:19 【问题描述】:大家晚上好! 任何人都知道如何从数组中提取前 5 个数字(最高)? 我有一个包含姓名、姓氏和分数的 XML,并且想要提取前 5 个来创建图表。 至于现在,我是通过这种方式获取所有信息的:
num = xmlData.childNodes.length;
for (var i = 0; i <= num - 1; i++)
names[i] = this.childNodes[i].childNodes[6].firstChild.nodeValue;
surnames[i] = this.childNodes[i].childNodes[5].firstChild.nodeValue;
points[i] = this.childNodes[i].childNodes[0].firstChild.nodeValue;
pointsint[i] = parseInt(speeds[i]);
trace(i + "." + pointsint[i] + " (" + names[i] + " " + surnames[i] + ")");
感谢您的帮助!
【问题讨论】:
【参考方案1】:将数据组织为通用对象条目和 Array.sortOn(...) (http://help.adobe.com/en_US/as2/reference/flashlite/WS5b3ccc516d4fbf351e63e3d118ccf9c47f-7ea5.html)。我没有测试它,但我认为这个想法很清楚:
var num = xmlData.childNodes.length;
var entries = [];
for (var i = 0; i <= num - 1; i++)
var anEntry = ;
var aNode = xmlData.childNodes[i];
anEntry['name'] = aNode.childNodes[6].firstChild.nodeValue;
anEntry['surname'] = aNode.childNodes[5].firstChild.nodeValue;
var aSpeed = aNode.childNodes[0].firstChild.nodeValue;
anEntry['speed'] = parseInt(aSpeed);
entries.push(anEntry);
trace(i + "." + anEntry['speed'] + " (" + anEntry['name'] + " " + anEntry['surname'] + ")");
entries.sortOn("speed", Array.DESCENDING | Array.NUMERIC);
// Now first five elements of entries Array is what you want.
【讨论】:
嗨,我试过你的代码,它给了我数组但是它并没有通过将最高分放在顶部来排序。我做错了吗? @DiegoG 因为排序发生在跟踪条目之后。排序后再次跟踪它们。以上是关于AS2 从数组中提取前 5 个的主要内容,如果未能解决你的问题,请参考以下文章