テストコード|(JavaScript)プログラマー:ソウルで金婿を探す


に質問


String型配列seoulの要素の中で“Kim”の位置xを見つけて、“Kim seoがxの上で”Stringの関数を返して、解を完成します.「キム」はソウルで一度しか現れず、誤った値を入力しなかった.

制限

  • seoulは、長さが1より大きく、1000未満の配列です.
  • seoulの要素の長さは1より大きく、20より小さい.
  • 「KIM」はソウルに含まれる
  • 🎹📢I/O例



    ほどく

    const solution = (seoul) => "김서방은 " + seoul.indexOf("Kim") + "에 있다";
    
    // 백틱 버전
    const solution = (seoul) => `김서방은 ${seoul.indexOf("Kim")}에 있다`;
    Array.indexOf()Array.findIndex()の関数を思い出しました.indexOf()は、要素にのみ含まれる可能性のあるデータを検索するために使用される.
    検索中に条件を指定するには、findIndex()を使用してコールバック関数を指定します.両方の関数は、条件を満たす対応する要素のインデックスを返し、ない場合は-1を返します.
    backtic(`)はES 6に導入されたテンプレートである.キーボードの波(~)に等しい文字.
    backticを使用すると、${}でデータ、計算式、および関数のreturnデータを表すことができる.関数が返されない場合はundeffineを返します.
    また、一重引用符("")と二重引用符(""")の表示も容易であり、エスケープシーケンスで使用する必要がある行(n)と水平(t)は、入力を追加せずに直接適用することもできます.
    すべての機能と計算が完了すると、結果は文字列に変換されます.
    プログラマーのテストケースで確認すると、backticはもっと遅いようです.
    また、findIndex()よりもArray.indexOf()の方が性能が良い.理由を考慮すると、findIndex()はユーザ定義のコールバック関数によって条件を検索し、要素を巡る過程でパラメータ値が変化し、内部コードを実行する過程で比較的遅い場合がある.

    🎈他人の解答

    function solution(seoul){
      var idx = seoul.indexOf('Kim');
      return "김서방은 " + idx + "에 있다";
    }
    他の人も同じ方法で解いた.問題はそんなに簡単です.

    参考資料とサイト(ありがとうございます)

  • https://programmers.co.kr/learn/courses/30/lessons/12919