-3

在一次采访中,我被要求为以下场景编写代码。

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

如果上面的语句是用 javascript 编写的,它 ele 应该包含该数组中第二高的元素。在这种情况下,它应该包含 8。

你如何为此编写代码?我想我们将不得不写一个function second()

但是我们如何调用确保它将数组作为该参数?

请帮我解决一下这个。先感谢您。

4

2 回答 2

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;
};

您应该包括错误处理,并且有足够的空间来优化此解决方案。

于 2015-09-24T22:16:39.217 回答
1

向 Array 对象的Prototype添加一个方法。

Array.prototype.second = function() {
  // Your logic here
}
于 2015-09-24T22:06:56.273 回答