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 个的主要内容,如果未能解决你的问题,请参考以下文章

PHP从数组中提取部分保留以前的键

从多个csv中提取列名前几个字符的列

C#如何从字节数组中提取字节?已知起始字节

Python帮助-如何从一维数组中提取特定范围的值? [重复]

如何从熊猫中的字符串中提取前8个字符

Beam/Dataflow 2.2.0 - 从 pcollection 中提取前 n 个元素