2012-10-25 37 views
0

我想從列表/數組中搜索或選擇特定的記錄。所以在構建閃存中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. 

回答

2

爲什麼要這樣呢?此功能內置於AS3中的Array類(即使不是全部OOP語言也是大部分)。

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

Array#indexOf()

至於爲什麼你的腳本不工作,你必須返回一個值。你不能在條件或循環中獲得所有的回報。必須在函數的基本級別內返回。

編輯:只是仔細看看你的功能,有更多的錯誤,而不僅僅是回報。你永遠不會超越數組中的第一項,因爲它總是會返回一個值(感謝else條件)。簡單地刪除其他位,後在其移動回用於循環運行,你將擁有的indexOf如何工作

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; 
} 
粗糙的複製