プログラマ|区切られた数値配列


ディジタル配列


arrayの各要素で、昇順で配列された配列の係数で区切られた値を返す関数を作成します.要素が除数で区切られていない場合は、配列に-1を入れて返します.
せいげんじょうけん
  • arrは自然数を含む配列である.
  • 整数i,jについて、i≠jの場合、arr[i]≠arr[j]である.
  • 除数は自然数です.
  • arrayは、長さが1より大きい配列である.
  • テストケース
    arrdivisorreturn[5, 9, 7, 10]5[5, 10][2, 36, 1, 3]1[1, 2, 3, 36][3,2,6]10[-1]
    説明する
    function solution(arr, divisor) {
        var answer = [];
        arr.map((num)=>{
            num%divisor === 0 && answer.push(num)
        })
        answer.length===0 ? answer.push(-1) : answer.sort((a,b)=>(a-b)) ;
        return answer
    }
  • の正解を空にします.
  • map関数を用いてarr要素を除数に分け,落ちた要素だけが空の配列に押し込まれる.
  • で分けられない数が答えです.lengthが0(空の配列)の場合は、-1を押します.
  • (区切られた要素)でない場合はsort関数を使用してソートします.
  • では、sort関数は文字列のUnicodeで並べ替えられるので、36は3と識別される.
    そこで,(a,b)=>(a−b)コールバック関数をパラメータとしてカスケードし,昇順に並べ替える.
  • の答えを返します.
  • 悩むところ&勉強するところ
    厄介な問題の処理:[1]の例外を返す
    まさかlengthで区切るとは思わなかったので、「区切られた数vs区切らない数」の3つの演算子で近づきました.
    function solution(arr, divisor) {
      var answer = [];
      arr.map((num) => {
        num % divisor === 0 ? answer.push(num) : answer.push(-1)
      });
      return answer.sort((a, b) => a - b);
    }
    そうします.
  • で除算できない数はすべて-1なので[1,1,1,1]は...🤦
  • ならelse以外は本物だけ返したほうがいいです.すぐに分かった...
  • で-1はどうやって返しますか…?😵‍💫
    map関数の外で何回車に戻る必要がありますか?そうじゃないと並びきれない…?
    それからfilterと3つの演算子を書いて、mapの外でfor回転して、それからとてもシャベルをかきました......
  • そして最後のテスト結果が空の配列であることに気づき、配列の長さが目立った!
    そして心の平和.私にとって川のような平和...🌿
    学識
  • sort関数ソートする配列の要素の数が2個未満の場合、「sort is not a function」エラーが発生します.
  • push()は、配列の長さを返します.
  •     return answer.length===0 ? answer.push(-1) : answer.sort((a,b)=>(a-b)) ;
  • answer.push(-1)は1を表す.
    arrを返すべきだと知っていますが...どうして1ですか.
    音数を認識できませんか?どうして1なの?3をコンソールに置く-8をコンソールに置くと1つ1つ長くなっています
  • googlingは
  • push()関数を返して、やはりlengthを返しました...ほほほ
    これも知らないナラン・バサリー...反省しましょう.今知っておけばよかったのに・・・ほほほ
  • グループ学習グループメンバーコードレビュー後の感想
    予想は4/22