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

标签 javascript node.js

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/

相关文章:

javascript - 将不同 DIV 中的数字相加

javascript - 我想减少下面代码中的小数点长度

node.js - 访问 package.json 中的配置值

node.js - 使用 admin sdk 在云功能中执行 Firestore 集合组查询?

javascript - 单击列表中的第一项时打开 Accordion

javascript - css:使div脱颖而出

javascript - json.parse 的问题

node.js - 将 Node 注册为 js 文件的默认可执行文件

javascript - 使用渲染将大量数据从路由传递到 Node View 的最佳方法?

javascript - 在 map 实例上使用 map /过滤器行为