Arrays AS3:如何仅使用1 for循环比较包含对象的2个数组?

Arrays AS3:如何仅使用1 for循环比较包含对象的2个数组?,arrays,actionscript-3,flash,Arrays,Actionscript 3,Flash,我有两个数组,它们有不同长度的对象 var arr : Array = [{name : "aa", id : "0"}, {name : "bb", id : "1"}, {name : "cc", id : "2"}]; var arrTemp : Array = [{name : "ee", id : "0"}, {name : "hh", id : "1"}, {name : "cc", id : "2"}, {name : "gg", id : "3"}]; 现在我不想使用2

我有两个数组,它们有不同长度的对象

 var arr : Array = [{name : "aa", id : "0"}, {name : "bb", id : "1"}, {name : "cc", id : "2"}];

 var arrTemp : Array = [{name : "ee", id : "0"}, {name : "hh", id : "1"}, {name : "cc", id : "2"}, {name : "gg", id : "3"}];
现在我不想使用2 for循环遍历数组。是否可以使用indexOf或filter等属性进行搜索

目前我正在使用下面的代码,我想这是不对的

for(var i:* in arr)
{       
    if( arr[i].indexOf( arrTemp[i].name ) > -1 )
    {
        trace(i)
    }
}
我们将不胜感激


提前谢谢。

基本上你必须检查
arr[i]。名称
indexOf
而不是
arr[i]
。代码应该是这样工作的:

var arr : Array = [{name : "aa", id : "0"}, {name : "bb", id : "1"}, {name : "cc", id : "2"},{name : "ee", id : "0"}];
var arrTemp : Array = [{name : "aa", id : "0"}];

function decideWhichArray():void {
    if(arr.length <= arrTemp.length){
        var dif = arrTemp.length - arr.length;
        for(var i=0;i< dif;i++){
            var newObj:Object = new Object();
            newObj.name = null;
            newObj.id = null;
            arr.push(newObj)
        }
    }
    else{
        var difAgain = arr.length - arrTemp.length;
        for(var j=0;j< difAgain;j++){
            var newObjSecond:Object = new Object();
            newObjSecond.name = null;
            newObjSecond.id = null;
            arrTemp.push(newObjSecond)
        }
    }
    checkResult(arr,arrTemp);
}

function checkResult(arr1,arr2):void {
    for(var i:* in arr1)
    {       
        if( arr1[i].name.indexOf( arr2[i].name ) > -1 )
        {
            trace(arr1[i].name);
        }
    }
}

decideWhichArray()
var-arr:Array=[{name:“aa”,id:“0”},{name:“bb”,id:“1”},{name:“cc”,id:“2”},{name:“ee”,id:“0”}];
var arrttemp:Array=[{name:“aa”,id:“0”}];
函数decideWhichArray():void{
如果(arr.length-1)
{
跟踪(arr1[i].name);
}
}
}
decideWhichArray()

您发布的内容中没有包含多维数组。您向我们展示了两个数组,每个数组都填充了简单的对象。这与多维数组有什么关系?@DodgerThud谢谢,更新了问题,现在你能帮我解决这个问题吗。如果可以,我会的,但我不理解你的问题。您不想使用2个循环,但在您展示的代码中,您已经只使用了一个foor循环。@DodgerThud,正如我提到的,我不想使用2个循环。但是您没有使用2个循环,而是使用1。谢谢@Özgür Ersil,它可以工作,但是如果两个数组的长度不同呢。