我想从列表/数组中搜索或选择特定的itmes。所以在构建用于在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.
答案 0 :(得分:2)
为什么要这么麻烦?此功能内置于AS3中的Array类(以及大多数,如果不是全部,OOP语言)。
trace( this.ar.indexOf( "bhati" ) ); //will output 0
至于为什么你的脚本不起作用,你必须返回一个值。你不能在条件或循环中获得所有的回报。必须在函数的基本级别内返回。
编辑:只是仔细看看你的功能,它的错误多于回归。你永远不会超越数组中的第一项,因为它总会返回一个值(感谢else条件)。只需删除else位并在for循环运行后移动其中的返回值,您将对indexOf的工作方式进行粗略的重复
答案 1 :(得分: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;
}