nodejs vs javascript(两个不同的答案)


var largestNumber = function (nums) {
let comp = (a, b) => {
a = a.split("").reverse().join("");
b = b.split("").reverse().join("");
return a.localeCompare(b) > 0 ? 1 : 0;
};
return nums.map(v => '' + v).sort(comp).reverse().join('');
};
console.log(largestNumber([3, 30, 34, 5, 9]));

在 nodejs 中 输出:9534330
在 JavaScript 中 输出:9534303
发生了什么?

如评论中所述,您的比较函数是不确定的,并且 2 个引擎会导致不同的结果。您可以在两个版本中尝试以下操作,以查看一致的结果9534330

var largestNumber = function (nums) {
let comp = (a, b) => {
a = a.split("").reverse().join("");
b = b.split("").reverse().join("");
return a.localeCompare(b);
};
return nums.map(v => '' + v).sort(comp).reverse().join('');
};
console.log(largestNumber([3, 30, 34, 5, 9]));

最新更新