Bis*_*ain 2 javascript arrays sorting join
我有一个数组,arr = [1,3,34,44,4,45,6,76,9,98,23]并希望从上面的数组中形成最大的数字。O/P 编号为 99876645444343231。
我尝试为这组数字做这件事,这对 2 位数字工作正常,但不能超过那个数字。谁能建议一个通用的答案?
您可以使用一个带有字符串值的数组以及 and 的连接值a和band 的值,b并a使用它的 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)