首页 > 解决方案 > 相同的代码在不同的设备上运行不同

问题描述

我是编码新手,还在学习。我的朋友给了我一个任务来编写一个函数,该函数确实从数组中返回第二大数字,我已经设法使用 array.prototype.sort() 来完成它。他说用“<”或“>”替换“-”以使代码更清晰,这就是问题开始的地方。

我在 Windows 上使用 VCS,但它无法正常工作。我朋友用的是mac,一切正常。在jsfiddle上试过,一切正常。

const secondMax = (arr) => {
  return arr.sort((a, b) => b - a)[1]; //does return the correct number after console.log()
};
const secondMax = (arr) => {
  return arr.sort((a, b) => a < b)[1]; //does not
};

“a < b”应该是降序排序 “a > b”应该是升序排序 但是无论我使用哪个运算符,排序都会失败,只返回数组中的第二个数字

标签: javascriptarrayssorting

解决方案


您应该返回一个数字,而不是布尔值。所以第一个是正确的。后者可能会在某些 javascript 引擎上偶然工作,但不能保证。


推荐阅读