[CODING TEST]::LV 1分割数配列


[質問]


arrayの各要素で、昇順で配列された配列の係数で区切られた値を返す関数を作成します.
要素が除数で区切られていない場合は、配列に-1を入れて返します.

[制限]

  • arrは自然数を含む配列である.
  • 整数i,jについて、i≠jの場合、arr[i]≠arr[j]である.
  • 除数は自然数です.
  • arrayは、長さが1より大きい配列である.
  • [I/O例]


    arrdivisorreturn[5, 9, 7, 10]5[5, 10][2, 36, 1, 3]1[1, 2, 3, 36][3,2,6]10[-1]

    [IO例説明]


    I/O例#1
    arrの5つの要素のうち5つは5と10です.したがって、[5,10]を返します.
    I/O例#2
    arrのすべての要素は1で区切られています.元素を昇順に並べて[1,2,3,36]を返します.
    I/O例#3
    3、2、6は10に分けられない.[1]を返します.分離された要素がないためです.

    [solution.js]

    function solution(arr, divisor) {
        var answer = [];
        return answer;
    }

    [answers.js]

    function solution(arr, divisor) {
      var answer = [];
      arr.forEach((el) => {
        if (el % divisor === 0) {
          answer.push(el);
        }
      });
      answer = answer.sort((a, b) => a - b);
      if (answer.length === 0) {
        answer.push(-1);
      }
      return answer;
    }

    [回答]

    function solution(arr, divisor) {
      var answer = arr.filter((el) => el % divisor === 0);
      return answer.length === 0 ? [-1] : answer.sort((a, b) => a - b);
    }
    [codesandbox]
    https://codesandbox.io/s/coding-test-daily-20-m0ylfs