[符号化問題]レベル1の最小数を削除


プログラマレベル1
最小数を削除
問題の説明
整数を格納する配列を返し、arrから最も少ない配列を削除します.
作成した関数は、解答を完了してください.
ただし、返される配列が空の配列の場合は、配列に-1を入力して返します.
たとえばarrが[4,3,2,1]の場合、[4,3,2]が返されます.
[10]面を復元[1].
せいげんじょうけん
  • arrは、長さが1より大きい配列である.
  • インデックスi,jについて、i≠jの場合、arr[i]≠arr[j]である.
  • 私の質問に答える
    function solution(arr) {
        if(arr.length === 1){
            return [-1];
        }
        
        let smallNum = arr[0];
        arr.forEach(num=>{
            if(smallNum > num){
                   smallNum = num;
            }
        });
        let smallIndex = arr.indexOf(smallNum);
        arr.splice(smallIndex, 1);
        return arr;
    }
    テスト例の実行結果は正しいが、コードは複雑である.
    他人の解答
    function solution(arr) {
        arr.splice(arr.indexOf(Math.min(...arr)),1);
        if(arr.length<1)return[-1];
        return arr;
    }
    きれいすぎます.
    Mathのmin関数は、数値セットの最小数を返します.
    既存のarrアレイで展開構文をパラメータとして使用する
    最小の数値を取得し、indexOfで最小数のインデックスを取得します.
    最後に、接合によって(パラメータは上述のプロセスによって得られる最小数である)
    該当する要素を削除します.