reduce関数はECMAScript5仕様に登場する配列メソッドですJavascriptreduce関数の古典的なインタビュールーチンをチェックして、困っている友達は参考にしてください
誤って作品を見てしまった。今日のコードの内容とコードで使用されているもの 文字列内の同一の文字の数を数えるという典型的な面接の質問を短時間で完了しました。オンラインで調べたところ、価値のあるものは何も見つかりませんでした。私のアイデアは次のように整理されています:
元のコード:
var arr="qweqrq" var info= arr.split('').reduce((a,b)=> (a[b]++ || (a[b]=1),a) ,{}) console.log(info)
コードのアイデアは次のとおりです。 まず、split メソッドを使用して文字列 arr を配列に切り取り、次に、reduce を使用します。このメソッドは次のステップに分かれています:
1. まず、reduce は配列内の各要素を実行するためのコールバックを受け取ります。2 番目のパラメーターがある場合は、上記の例のようになります。そうすると、コールバックはこの {} をパラメータとして使用し、配列の最初の要素とともにコールバックに渡します
2。パラメータを渡した後、AND ゲートの短絡演算が実行されます。デフォルト値操作とも呼ばれます。 When a[b]++ が true になった場合、a[b] を返します。ここで、 a は {} で、 b は "q" です。 a[b]=1 が実行されると、 a[b] には値 1 が割り当てられ、その後にコンマ式が続きます。したがって、a[b]:1; のようなプロパティを持つオブジェクトを返します。
ANDゲート短絡演算: 最初のオペランドの値がtrueの場合、短絡演算を実行し、最初のオペランドを直接生成します。操作 数値の値。 false の場合、2 番目のオペランドの値が返されます。
コンマ式: コンマ式の一般的な形式は次のとおりです: 式 1、式 2、式 3... 式 n。カンマ式の解決プロセスは、まず式 1 の値を計算し、次に式 2 の値を計算し、式 n の値が計算されるまで続きます。最後に、カンマ式全体の値が式 n の値になります。
3.reduce 関数については後で説明します。この関数は、前回の実行後に返された結果をパラメーターとして使用し、それを後続の要素とともにコールバックに渡し続けることができます。これは fn(fn(fn) と同等です。 (fn(a,b),c ), d), e)、fn はコールバックです。この例では、2 番目のパラメーター {} が渡されるため、コールバックは 6 回実行されます。これは、配列内の各要素の重複を入力してチェックすることと同じです。たとえば、コールバックが 4 回目に実行されるとき、a は {q:1,w:1,e:1} となり、コールバックが実行されます。 a[ b] つまり、a['q'] が存在する場合、a['q']++ が実行されると、a['q'] の値は 2 となり、最終結果は属性名となります。出現する配列の各要素で、時間を属性値とするオブジェクト。
reduceはes5で導入された手法でie8以下には対応していないので注意が必要です。
以上がJavascriptのreduce関数重複チェックについて詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。