面接試験問題を通して先端を勉強します.


前言
最近何気なく前の問題を見つけました.
[1, 2, 3].map(parseInt)
考えてみると、答えは[1, 2, 3]じゃないですか?しかし、chromeコンソールの下で運転して、戻ってきたのは[1, NaN, NaN]です.
これはどういうことですか?map()parseInt()の方法の詳細な使い方を見てみましょう.
mapmap(callback, [thisArg])方法:
  • は、1つのコールバック関数callbackを受け取り、
  • を返します.
  • によって返された配列の要素の値は、callback関数を呼び出して返された値である(元の配列にはいくつかの要素があり、数回callbackを呼び出す)
  • .
  • callbackは、3つのパラメータを受け入れる.
  • currentValue:現在処理されている配列要素の値
  • index:現在処理中の配列要素のインデックス
  • arr:map方法を呼び出す配列
  • map方法は、一般的に、既存の配列の各要素に対して同じ論理の演算処理を行うシーンに用いられる.例えば、普段私が仕事をしている時、この方法が一番多く使われているシーンは react this.state html jsxです.
    class example extends React.component {
      state = {
        personList: [
          {
            name: '  ',
            age: 18
          },
          {
            name: '  ',
            age: 19
          },
          {
            name: '  ',
            age: 20
          }
        ]
      }
      render() {
        return (
          
            {this.state.personList.map(person => {
              return 
    :{person.name} :{person.age}
    })}
    ) } }
    parseIntparseInt(string, [radix]): ( )を解析して、10進数の整数を返します.
  • string:解析された文字列(前後のスペースは無視され、文字列でないと文字列に変換される)
  • radix:string( )の基数(2~36、つまり2 ~36 )を指定し、0を伝えないとstring( )10 で解析する.
    また[1, 2, 3].map(parseInt)を見にきます.
    ParseIntコールバック関数は3回呼び出されます.
    // arr      [1, 2, 3]
    //      
    parseInt(1, 0, arr) // 1
    
    //      
    parseInt(2, 1, arr) // NaN
    
    //      
    parseInt(3, 2, arr) // NaN
    まず、parseIntのコールバック関数は、 に変換する.1 -> '1',2 -> '2',3 -> '3'です
  • が第1回起動した場合、radixは0であるため、string10 に従って処理し、10 1
  • に戻る.
  • の第二の呼び出しは、radixが1であるため、2~36の範囲ではなく、NaN
  • に直接戻ります.
  • の第3回の呼び出しは、radixが2(バイナリ)であるため、string'3'であり、 ではないので、NaN
  • に戻る.[1, 2, 3].map(parseInt)[1, NaN, NaN]に戻ります.
    もっと多い:パーrseFloat[1, 2, 3].map(parseFloat)は、1つのパラメータ[1, 2, 3]だけを受け取るので、parseFloat(string)を返します.
    map()ドキュメントのパーrseInt()ドキュメントのパーパーパーミッションFloat()ドキュメント
    締め括りをつけるstringの方法に慣れていない上に、この面接問題をよく分析していないので、自分でこの問題を解いてしまいました.
    これは前の問題の中の一つです.これからはもっと多くの先端の面接問題に関する知識をまとめて、先端の知識を勉強します.