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
发生了什么事?
最佳答案
正如评论中所述,您的比较函数是不确定的,两个引擎会产生不同的结果。您可以在两个版本中尝试以下操作以获得一致的结果 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]));
关于javascript - nodejs vs javascript(两个不同的答案),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62648104/