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