0

我想从列表/数组中搜索或选择特定项目。所以在构建Flash中的AS3搜索功能时,我卡住了..请帮忙解决这个问题...提前谢谢

var ar:Array = new Array();
ar=[ "bhati", "malav", "vinod"];

//Searching Function
function findIndexOfValue( array:Array, _value:* ):int {
    var _length:uint = array.length;
    for(var i:uint=0; i < _length; i++) {
        if(array[i] == _value) {
            return i;
        }
        else{
            return -1;
        }
    }
}

trace(findInndexOfValue( ar, "bhati" )); // it should output 0 .
//compiler error:- 1170:Function doesn't return a value., I tried my best, but unable to solve this.
4

2 回答 2

2

为什么要为此烦恼?此功能内置于 AS3 中的 Array 类中(以及大多数,如果不是全部的话,OOP 语言)。

trace( this.ar.indexOf( "bhati" ) ); //will output 0 

数组#indexOf()

至于为什么你的脚本不起作用,你必须返回一个值。您不能在条件或循环中获得所有回报。在函数的基本级别内必须有一个返回。

编辑:只是仔细看看你的函数,它有更多的错误,而不仅仅是返回。您永远不会超出数组中的第一项,因为它总是会返回一个值(感谢 else 条件)。只需删除 else 位并将其中的 return 移到 for 循环运行后,您将大致了解 indexOf 的工作方式

于 2012-10-25T16:28:58.067 回答
2

怎么样

function findIndexOfValue( array:Array, _value:* ):int {
    var _length:uint = array.length;
    for(var i:uint=0; i < _length; i++) {
        if(array[i] == _value) {
            return i;
        }
    }
    return -1;
}
于 2012-10-25T16:29:31.270 回答