Javascript:面接の定番コース-チェック(reduce)
1311 ワード
今日は偶然にコードを調べました.コードは短い文章を使って文字列の統計と同じ文字数の経典面接問題を完成しました.その中にreduceという方法を使って、インターネットで調べました.価値のあるものが見つからず、時間を浪費してやっと分かりました.
元のコード:
1.まずreduceはcalbackを受信して、配列内の各要素に対して実行します.もし第二のパラメータがあるならば、上の例:{}です.じゃ、calbackはこれをパラメータとして使って、配列の中の最初の要素と一緒にcalbackに伝えます.
2.パラメータが入ってきたら、ドアとの短絡操作を行います.標準値操作ともいいます.a[b]+が現実になったら、a[b]に戻ります.ここのaは{}であり、bは“q”であり、aにbはないことが明らかである.
ドアとショート操作:最初の操作数の値がtrueであれば、ショート操作を行い、直接に最初の操作数の値を生成する.falseであれば、第二の動作数の値が生成される.
コンマ表現:コンマ表現の一般的な形式は、表式1、表式2、表式3…表式nです.コンマ式のソルバー処理は、表式1の値を先に計算し、表式2の値を計算します.最後のコンマ表現の値は、表式nの値です.
3.後でreduce関数を言いたいのですが、前回の実行後に戻った結果をパラメータとして継続してその後の要素と共にcalbackに伝えて実行してもいいです.
4.本例では、2番目のパラメータ{}が入ってきたので、calbackは6回実行された.配列中の各要素に対して入力と検索が行われています.例えば、calbackが4回目まで実行されたときのaは
注意が必要なのは、reduceはes 5の出した方法で、ie 8と以下はすべて互換性がありません.
転載先:https://www.cnblogs.com/cosname/p/6603761.html
元のコード:
var arr="qweqrq"
var info= arr.split('').reduce((a,b)=>
(a[b]++ || (a[b]=1),a)
,{})
console.log(info)
コードの考え方は、まず文字列arrをsplit
方法で配列に切断し、reduce
を使用して、この方法は何をしましたか?1.まずreduceはcalbackを受信して、配列内の各要素に対して実行します.もし第二のパラメータがあるならば、上の例:{}です.じゃ、calbackはこれをパラメータとして使って、配列の中の最初の要素と一緒にcalbackに伝えます.
2.パラメータが入ってきたら、ドアとの短絡操作を行います.標準値操作ともいいます.a[b]+が現実になったら、a[b]に戻ります.ここのaは{}であり、bは“q”であり、aにbはないことが明らかである.
a[b]=1
を実行すれば、a[b]に1を与え、後にコンマ式があるので、a[b]:1のような属性のaオブジェクトが戻ってくる.ドアとショート操作:最初の操作数の値がtrueであれば、ショート操作を行い、直接に最初の操作数の値を生成する.falseであれば、第二の動作数の値が生成される.
コンマ表現:コンマ表現の一般的な形式は、表式1、表式2、表式3…表式nです.コンマ式のソルバー処理は、表式1の値を先に計算し、表式2の値を計算します.最後のコンマ表現の値は、表式nの値です.
3.後でreduce関数を言いたいのですが、前回の実行後に戻った結果をパラメータとして継続してその後の要素と共にcalbackに伝えて実行してもいいです.
fn(fn(fn(fn(a,b),c),d),e)
に相当し、fnはcalbackです.4.本例では、2番目のパラメータ{}が入ってきたので、calbackは6回実行された.配列中の各要素に対して入力と検索が行われています.例えば、calbackが4回目まで実行されたときのaは
{q:1,w:1,e:1}
で、calbackが実行され、a[b]つまりa[q]+a[q]+a[q′]の値が2であり、これを類推して、最後に得られたのは、数セットの各要素を属性として出現回数です.注意が必要なのは、reduceはes 5の出した方法で、ie 8と以下はすべて互換性がありません.
転載先:https://www.cnblogs.com/cosname/p/6603761.html