2015-09-24 94 views
-3

我在面試中被問及以下場景的代碼。在javascript中定義數組函數

var ele = [2,5,4,8,4,9].second(); 

如果上述語句是用javascript編寫的,它應該包含該數組中第二個最高的元素。在這種情況下,它應該包含8.

你如何爲此編寫代碼?我想我們將不得不寫一個function second()

但我們如何調用確保它將該數組作爲參數?

請幫我這個。先謝謝你。

+0

你已經試過了什麼? –

+0

'Array.prototype.second = function(){return 8; }' –

回答

1

向Array對象的原型添加一個方法。

Array.prototype.second = function() { 
    // Your logic here 
} 
2

這應該讓你開始

Array.prototype.second = function() { 
    var biggest = -Infinity; 
    var second = -Infinity; 
    for (var i = 0; i < this.length; ++i) { 
    if (this[i] > biggest) { 
     second = biggest; 
     biggest = this[i]; 
    } else if (this[i] < biggest && this[i] > second) { 
     second = this[i]; 
    } 
    } 
    return second; 
}; 

你應該包括錯誤處理,並有足夠的空間來優化該解決方案。