Flash AS3-XMLList-计算XMLList中元素的发生次数并显示结果
我有一个XMLList“关键字”,它由大约30个元素组成。我想计算列表中唯一关键字的数量,以及它们出现的频率。然后显示前3个最常见的关键字 可能有一个简单的排序/计数函数来实现这一点,但是,我对as3还很陌生,所以请原谅我的天真Flash AS3-XMLList-计算XMLList中元素的发生次数并显示结果,flash,actionscript-3,xmllist,Flash,Actionscript 3,Xmllist,我有一个XMLList“关键字”,它由大约30个元素组成。我想计算列表中唯一关键字的数量,以及它们出现的频率。然后显示前3个最常见的关键字 可能有一个简单的排序/计数函数来实现这一点,但是,我对as3还很陌生,所以请原谅我的天真 干杯。我不认为这是一个单行修复 我能看到的最直接的方法如下: 将关键字放入数组中,以便对其进行排序。这会导致任何关键字组合在一起时多次出现 现在,创建第二个数组来保存每个关键字的键值对(该值是发生次数)。可以通过单步遍历第一个数组并检查每个值来实现这一点:要么它是组的开
干杯。我不认为这是一个单行修复 我能看到的最直接的方法如下:
//put the keywords into an array, and sort them
var a1:Array=new Array();
for each (var item in keywords){
a1.push(item);
}
a1.sort();
//make an array to hold a key/value pair for
//each unique keyword, and how often it occurs
var a2:Array=new Array();
var currentKey:String="";
for each (var item in a1){
if (item!=currentKey){
//if we haven't seen this word before,
//make a new k/v pair with a count of 1
a2.push({key:item, keyCount:1});
currentKey=item;
} else {
//otherwise increment count
a2[a2.length - 1].keyCount++;
}
//now we can sort the array by keyCount
a2.sortOn("keyCount", Array:DESCENDING);
trace("3 top words are: ", a2[0], a2[1], a2[2]);
希望这对你有用。我不认为这是一个单行修复程序 我能看到的最直接的方法如下:
//put the keywords into an array, and sort them
var a1:Array=new Array();
for each (var item in keywords){
a1.push(item);
}
a1.sort();
//make an array to hold a key/value pair for
//each unique keyword, and how often it occurs
var a2:Array=new Array();
var currentKey:String="";
for each (var item in a1){
if (item!=currentKey){
//if we haven't seen this word before,
//make a new k/v pair with a count of 1
a2.push({key:item, keyCount:1});
currentKey=item;
} else {
//otherwise increment count
a2[a2.length - 1].keyCount++;
}
//now we can sort the array by keyCount
a2.sortOn("keyCount", Array:DESCENDING);
trace("3 top words are: ", a2[0], a2[1], a2[2]);
希望这对你有用