2011-10-29 71 views
0

我有麻煩。我得到了我親愛的var myVar:intarr:Array。我想用它們來執行我的功能。 s1indice1是我在程序中定義的數組和整數值。爲什麼我的函數沒有得到我的int var? AS3

getIndex(s1, indice1); 

function getIndex(arr:Array, index:int = 0):void { 
    for (var n:int = 0; n <= arr.length; n++) { 
     if (String(arr[n]).indexOf(">") >= 0) { 
      index = n; 
      trace(n); 
      arr[n] = String(arr[n]).substring(1); 
     } 
    } 
} 

現在我得到rigth結果爲我的數組,但我有我的指數var 0。

有人可以幫助我嗎?

我的意思是,我需要assing型動物數組的索引值diferents指數動態的方式,所以我可以用我的功能來檢索和索引,並將其保存爲任何陣列我有

+1

你能解釋你期望你的功能嗎? – grapefrukt

回答

0

搜索字符串是arr[0]可用以便它返回0

+0

nope,我做了一個n的痕跡,我得到6,所以我知道價值不是0 – Silence

+0

你能告訴我陣列? – Benny

+0

s1 [0]包含字符串「<」。 – Benny

2

你的問題很不清楚。

然而,要回答(我THINK你問), 您不能訪問該函數的變量index之外。這是因爲類型int未保存爲AS3中的參考。爲了得到index之外,你將不得不做以下任一操作:

一)指數的值分配給全局變量如:

var gIndex:int; 

function getIndex(arr:Array,index:int = 0):void{ 
    //function contents 
    gIndex=index;  
} 
//This way you can access index as gIndex; 

b)從該函數返回變量index

function getIndex(arr:Array,index:int = 0):int{ 
    //function contents 
    return index;  
} 

//this way you can access index as getIndex(s1, indice1); 
+0

+1這也是我的回答。 – Taurayi

+0

如果你讀了prev的評論,我解釋了確切的問題,並發現我已經解決了,只需w18 8小時就可以回答cuz我的聲望不是100或更高。 – Silence

+0

這是一個非常好的答案,但我真的不明白爲什麼你創建一個屬性索引:int爲da函數甚至不能像一個一樣使用它。我的意思是,如果我想返回一個n值給diferents索引你不能,因爲它總是返回n並將它指向gIndex,所以它不是一個動態的方式。 – Silence

-1

好的,我解決了。

那麼這不是我想要的,但看看。

我決定從我的函數返回n值並將其分配給我的var。

indice1 = getIndex(s1); 

function getIndex(arr:Array){ 

    for(var n:int=0; n<= arr.length; n++){ 

    if(String(arr[n]).indexOf(">") >= 0){ 

    return n;       
    arr[n]= String(arr[n]).substring(1); 
    } 
     } 
} 

所以我對我的變種了N值,就是這樣。謝謝無論如何= D

+0

如果你返回一些東西,那麼它之後的其他語句將永遠不會被執行。此外,定義函數的返回類型是一個好習慣。 –

+0

我忘了刪除那行「arr [n] = String(arr [n])。substring(1);」在我的代碼我沒有使用該行,因爲我添加了一個返回。 – Silence

相關問題