如何从javaScript中的一组数组中形成最大的数字

Bis*_*ain 2 javascript arrays sorting join

我有一个数组,arr = [1,3,34,44,4,45,6,76,9,98,23]并希望从上面的数组中形成最大的数字。O/P 编号为 99876645444343231。

我尝试为这组数字做这件事,这对 2 位数字工作正常,但不能超过那个数字。谁能建议一个通用的答案?

Nin*_*olz 6

您可以使用一个带有字符串值的数组以及 and 的连接值aband 的值,ba使用它的 delta 进行排序,这反映了两个字符串的排序顺序,以便以后加入更大的值。

function getLargest(array) {
    return array
        .map(String)
        .sort((a, b) => (b + a) - (a + b))
        .join('');
}

console.log(getLargest([1, 3, 34, 44, 4, 45, 6, 76, 9, 98, 23]));
Run Code Online (Sandbox Code Playgroud)

与按字符串进行的简单降序比较,返回错误结果(第二行)。

function getLargest(array) {
    return array
        .map(String)
        .sort((a, b) => (b + a) - (a + b))
        .join('');
}

console.log(getLargest([1, 3, 34, 44, 4, 45, 6, 76, 9, 98, 23]));
console.log([1, 3, 34, 44, 4, 45, 6, 76, 9, 98, 23].sort().reverse().join(''));
Run Code Online (Sandbox Code Playgroud)