私はプログラマーのような数字が好きではありません.


質問する


配列arr.アレイarrの各要素は、0から9の数字で構成されています.この場合、アレイarrは連続して表示される数字を1つだけ保持し、すべて削除しようとします.ただし、削除後に残数を返す場合は、アレイarr内の要素の順序を維持する必要があります.たとえば、
arr=1,3,3,0,1]の場合、[1,3,0,1]が返される.
arr=[4,4,3]の場合は[4,3]を返します.
配列arrから連続して現れる数字を削除し、残りの数を返すsolution関数を完了してください.

せいげんじょうけん

  • アレイarrサイズ:1000000以下の自然数
  • アレイarrの要素サイズ:0以上9以下の整数
  • I/O例



    に答える

    function solution(arr){
        let answer = []
        for(let i=0;i<arr.length;i++){
            if(arr[i] === arr[i-1]){
                continue;
            } 
            answer.push(arr[i])
        }
        return answer;
    }
    連続する重複だけを取り除くので、1つの格子の後ろで1つの格子の前を比較し、同じならスキップします.

    別の解釈

    function solution(arr)
    {
        return arr.filter((val,index) => val != arr[index+1]);
    }
    このコードの前に後ろを比較しました.フィルターを使う習慣を身につけなければならない.フィルタは重複文やif文の代わりになるからです.