我在接受采访时被要求编写以下方案的代码。
var ele = [2,5,4,8,4,9].second();
如果上面的语句是用javascript编写的,那么它应该包含该数组中第二高的元素。在这种情况下,它应该包含8。
你怎么写这个代码?我假设我们必须写一个function second()
但我们如何调用确保它将数组作为该参数?
请帮我解决这个问题。提前谢谢。
答案 0 :(得分: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;
};
您应该包含错误处理,并且有足够的空间来优化此解决方案。
答案 1 :(得分:1)
将方法添加到Array对象的 Prototype 。
Array.prototype.second = function() {
// Your logic here
}