2016-03-31 21 views
0

我在谷歌應用腳​​本編輯器中運行下面的代碼(代碼本身並沒有做有意義的事情,因爲它是我更大的代碼的簡單版本)。當我運行代碼時,它運行良好。但是,當我在for循環中設置斷點並在調試模式下運行時,它會運行第一個循環。但是,在第二個循環中,我得到一個「TypeError:在對象1.2.3.4.5.6中找不到函數findIndex」或類似的東西。爲什麼會發生?我做錯了什麼嗎?在for循環中使用原型設置斷點

function myFunction() { 
for (var i=0; i < 5; i++){ 
    var items = [[1,2],[3,4],[5,6]]; 
    var s = items.findIndex(5); 
    Logger.log(s); 
    } 
} 

Array.prototype.findIndex = function(search){ 
    if(search == "") return false; 
    for (var i=0; i<this.length; i++){ 
    for (var j=0; j<10; j++){ 
     var tmp = this[i][j]; 
     if (this[i][j] == search) return {row:i, col:j}; 
    } 
    } 
    return -1; 
} 

謝謝!

+0

我得到了同樣的錯誤。數組'item'裏面沒有函數。你正試圖在一個沒有函數對象的數組中引用一個函數。 –

回答

0

這你想要做什麼:

function myFunction() { 

function findIndex(search, array){ 
    var tmp; 

    if(search == "") return false; 
    for (var k=0; k<array.length; k++){ 
    for (var j=0; j<array[k].length; j++){ 
     tmp = array[k][j]; 
     if (tmp === search) return {row:k+1, col:j}; 
    } 
    } 
    return -1; 
} 

for (var i=0; i < 5; i++){ 
    var items = [[1,2],[3,4],[5,6]]; 
    var s = findIndex(5, items); 
    Logger.log(s); 
    } 
} 

我傳遞的數組內的功能。

+0

所以,問題是我自己定義array.prototype。函數findIndex不一定是內部函數。那是對的嗎? –

+0

你可以把'findIndex()'函數放在外面。 –