0

ArrayCollection のネストされたレベルで見つかった場合、値を返す再帰ループがあります。戻り値が見つかって関数によって返されると、次の反復で戻り値が null に戻ります。私が行方不明または間違っていることは何ですか?

// calling function
...
foundedItem = this.recursiveFindFunction(valueList); 
...

private function recursiveFindFunction(items:ArrayCollection):Object
{
    var retVal:Object;
    for (var i:int = 0; i < items.length; i++)
    {
        var value:Object = items.getItemAt(i);
        if (value.name == this.attribute.value.directValue as String)
        {
            retVal = value;
            break;
        }

        if (value.hasOwnProperty("children"))
        {
                this.recursiveFindFunction(value.children);
        }   
    }

    return retVal;
}  
4

1 に答える 1

1

再帰呼び出しの戻りをどこにもキャッチしていません

ここで戻り値をチェックしていません

 if (value.hasOwnProperty("children"))
    {
            this.recursiveFindFunction(value.children);
    }   

考えられる修正は、return ステートメントを次のように追加することです。

 if (value.hasOwnProperty("children"))
    {
            return this.recursiveFindFunction(value.children);
    } 

(リターンに注意)

于 2012-08-03T10:00:08.670 に答える