在一次采访中,我被要求为以下场景编写代码。
var ele = [2,5,4,8,4,9].second();
如果上面的语句是用 javascript 编写的,它 ele 应该包含该数组中第二高的元素。在这种情况下,它应该包含 8。
你如何为此编写代码?我想我们将不得不写一个function second()
但是我们如何调用确保它将数组作为该参数?
请帮我解决一下这个。先感谢您。
在一次采访中,我被要求为以下场景编写代码。
var ele = [2,5,4,8,4,9].second();
如果上面的语句是用 javascript 编写的,它 ele 应该包含该数组中第二高的元素。在这种情况下,它应该包含 8。
你如何为此编写代码?我想我们将不得不写一个function second()
但是我们如何调用确保它将数组作为该参数?
请帮我解决一下这个。先感谢您。
这应该让你开始
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;
};
您应该包括错误处理,并且有足够的空间来优化此解决方案。
向 Array 对象的Prototype添加一个方法。
Array.prototype.second = function() {
// Your logic here
}