大数


結論から言えば、解けなかった.
すべてのケースを順番に探して解きたいのですが、入力値が大きすぎて無理なので、条件を書いてみると大げさすぎると思います.
欠点.
function solution(numbers) {
    var answer = '';
    numbers.sort(sortFunc)
    answer = numbers.join('')
    if(answer[0] === '0') return '0'
    return answer;
}
const sortFunc =  (a,b) =>{
    const compareA = Number(a.toString() + b.toString())
    const compareB = Number(b.toString() + a.toString())
    return compareB - compareA
}
学識
  • sort()
    sort()動作の原理,順序を理解した.
    a,b:比較する各要素
    a-b>0:a値が上位
    a-b<0:bの値を前にします
    a-b=0:次へ
    以下の動作は、内部関数によって引き起こされます.
  • .
    var numbers = [4, 2, 5, 1, 3];
    numbers.sort(function(a, b) {
      return a - b;
    });
    console.log(numbers);
    
    // [1, 2, 3, 4, 5]
  • join('')
    基本的な関数ですが、いつも忘れているようです.
    join(")は配列->文字列を置換するのに最適な関数のようです.
  • リファレンス
    https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/sort