Actionscript 如何匹配两个长度不同(可能未排序)的数组中的值

Actionscript 如何匹配两个长度不同(可能未排序)的数组中的值,actionscript,Actionscript,我想将一个值与另一个数组中的所有值进行比较,并提取匹配项。这些长度不同 想象一下一列未排序的ID和一列ID和名称。我想出了这个,但它不起作用 private function mergeCollections():void { for (var k:int = 0;k <= idArray.length;k++) { for(var i:int = 0;

我想将一个值与另一个数组中的所有值进行比较,并提取匹配项。这些长度不同

想象一下一列未排序的ID和一列ID和名称。我想出了这个,但它不起作用

private function mergeCollections():void
            {   
                for (var k:int = 0;k <= idArray.length;k++)
                { 

                    for(var i:int = 0; i <= namesArray.length;i++){
                        if(idArray[k].id == namesArray[i].id){

                            idArray[k].name = namesArray[i].name;

                        }
                    }
                }
            }
很抱歉,如果sintaxis错误,我的arraycollections将从数据库到达

我在这里真正做的事情是从一个满是ID的表和一个满是IDE的表中接收值,加上名称(它们是分开的,因为它们是标准化的!),我想把它们放在一个只显示名称的数据网格中

我之所以说可能未排序,是因为第二列可能会达到多次删除和插入的点,并且可能最终未排序。但是对于这种情况,我有一个未排序的列与一个排序的列

我当前的输出只打印了一个名字,其余的都被完全删除了。


注意:还要考虑到nameArray对ID表总是有更多或相等的值。Id表将始终具有与名称表匹配的值。

除了使用之外,您能向我解释一下“跟踪”的功能吗?您认为当数组长度不同时它会工作吗?我问题的最后一行描述了输出。跟踪将文本打印到Flash的输出面板,或Flash Builder的控制台,只是为了显示数组id和名称按预期顺序排列。正如上面的示例所示,它肯定适用于不同长度的数组。
Array Coll idArray = [{3}{" "},
                      {1}{" "},
                      {2}{" "}] 

Array Coll namesArray[{1}{Name1},
                      {2}{Name2},
                      {3}{Name3},
                      {4}{Name4}]

Result =

idArray = [{3}{Name3},
           {1}{Name1},
           {2}{Name2}]
var arr1:ArrayCollection = new ArrayCollection([{id:1, name:""}, {id:2, name:""}, {id:3, name:""}]);
var arr2:ArrayCollection = new ArrayCollection([{id:1, name:"1"}, {id:3, name:"3"}, {id:2, name:"2"}, {id:4, name:"4"}]);
for (var i:int=0; i<arr1.length; i++)
{
    for (var j:int=0; j<arr2.length; j++)
    {
        if (arr1[i].id==arr2[j].id)
        {
            arr1[i].name = arr2[j].name;
            trace(arr1[i].id,arr1[i].name);
        }
    }
}