as3比较两个数组并返回索引
问题描述:
我想创建一个函数来比较两个数组并返回找到的项目的索引。如果我的例子数组是:as3比较两个数组并返回索引
var distances:Array = new Array (0,275,217,385,275,0,251);
var selectedDist:Array = new Array (217,275,251);
我想它返回2,4,6
答
尝试以下操作:
var indices:Array = [];
for each(var distance:int in selectedDist) {
var index:int = distances.indexOf(distance);
if (index >= 0) {
indices.push(index);
}
}
return indices;
+0
谢谢.......伟大..除了索引:array.push(索引),应该是indices.push(索引)...干杯 – 2012-02-17 23:44:13
+0
是的抱歉,我直接在这里键入代码,所以我没有注意到那。我在编辑我的答案。 – sch 2012-02-17 23:46:42
答
假如你总是selectedDist阵列比较距离阵列,我会这样做:
protected function compareArrays(arr1:Array, arr2:Array):Array
{
var matches:Array = new Array();
for(var x:int=0; x < arr2.length; x++) {
/*
* indexOf returns -1 id the element is not found in the array
* http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Array.html#indexOf()
* but you have to grab the lastIndexOf 275, as requested...
*/
if (arr1.indexOf(arr2[x] > -1))
matches.push(arr1.lastIndexOf(arr2[x]));
}
return matches;
}
为什么你返回索引4的距离为275?为什么不只是1? – sch 2012-02-17 23:36:07