この記事では、reduce()、filter()、map()、every()、some()、spread 演算子など、よく使用される配列処理関数と構文を紹介します。この知識はReactやRedux自体に直接関係するものではありませんが、この章の例にはこれらの関数や構文の使い方が含まれているので、プログラムの中で学ぶことができます。また、reduce()、filter()、map() などの関数のアイデアは関数型プログラミングから来ていることも特筆に値します。JavaScript は関数型プログラミング言語であるため、もともと複雑だったロジック処理が非常にシンプルになりました。 減らす()概要 Reduce() メソッドは関数を累積器として受け取り、配列内の各値 (左から右へ) が結合されて 1 つの値を形成します。 文法 配列.reduce(コールバック、初期値) パラメータについては以下で説明します。 const 完了カウント = todos.reduce( (count,todo)=>(todo.completed?count+1:count), 0); コードの説明: todos は配列です。 フィルター()概要 filter() メソッドは、指定された関数を使用してすべての要素をテストし、テストに合格したすべての要素を含む新しい配列を作成します。 文法 配列.フィルター(コールバック、thisArg) パラメータについては以下で説明します。 コールバック: 配列の各要素をテストするために使用される関数。3 つのパラメータが含まれます。要素を保持する(テストに合格する)場合は true を返し、保持しない場合は false を返します。 状態.filter(todo=> を返す todo.id!==アクション.id ) コードの説明: 状態はタスクの配列です。 地図()概要 map() メソッドは、元の配列の各要素に対して指定されたメソッドを呼び出した際の戻り値で構成される新しい配列を返します。 文法 配列.map(コールバック、thisArg) パラメータについては以下で説明します。 コールバック: このメソッドは元の配列の要素に対して呼び出され、新しい要素を返します。このメソッドには次の 3 つのパラメーターが含まれます。 例 状態.map(todo=>( を返す todo.id === action.id ですか? オブジェクトを割り当てます({},todo.{text:action.text}): やること )); コードの説明: state は変更前の状態であり、配列です。 構文は Object.assign(target,...sources) です。target はターゲット オブジェクト、sources は任意の数のソース オブジェクトです。 毎()概要 every() メソッドは、配列内のすべての要素が指定された関数のテストに合格するかどうかをテストするために使用されます。 文法 配列.every(コールバック、thisArg) callbak: 各要素をテストするために使用される関数。 例 const areAllMarked = state.every(todo=>todo.completed) タスク配列が走査され、各タスクの完了属性が true の場合、true を返します。 いくつかの()概要 some() メソッドは、指定された関数のテストに合格する要素が配列内に少なくとも 1 つあるかどうかをテストするために使用されます。 文法 配列.some(コールバック[,thisArg]) パラメータについては以下で説明します。 callback: 各要素をテストするために使用される関数。 例 const areAllMarked = state.some(todo=>todo.completed) タスク配列を走査し、完了プロパティが true であるタスクがある限り true を返します。 スプレッド演算子概要 スプレッド演算子を使用すると、式をある時点で展開できます。一般的なシナリオには、関数パラメータ、配列要素、分解割り当てなどがあります。 文法 関数パラメータの場合: myFunction(...iterable0bj); 配列要素の場合: [...反復可能オブジェクト、4、5、6] 分割代入の場合: 定数[a,b,...残り]=[1,2,3,4,5] 定数{a,b,...残り}={a:1,b:2,c:3,d:4} React コンポーネントのプロパティ: <App...iterable0bj/> 例 状態を展開 戻る[ id:state.reduce((maxId,todo)=>Math,max(todo,id,maxId),-1)+1, { 完了:false、 テキスト:アクション.テキスト、 }, ...州、 ]; アクションの各プロパティをコンポーネントに展開します。 <TodoItem キー = {todo.id} todo = {todo}{...アクション} /> 要約するReduce() メソッドは関数を累積器として受け取り、配列内の各値 (左から右へ) が結合されて 1 つの値を形成します。 ReactとReduxの配列処理に関する記事はこれで終わりです。ReactとReduxの配列処理についてさらに詳しく知りたい方は、123WORDPRESS.COMの過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも123WORDPRESS.COMをよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Webサービスのリモートデバッグとタイムアウト動作原理の分析
>>: MySQL で大量のデータ (数千万) を素早く削除するためのいくつかの実用的なソリューションの詳細な説明
問題を見つける上位の SQL ステートメントを取得すると、DB が大量のselect @@sessi...
今日はあまり使わないHTMLタグ「subタグ」と「supタグ」を紹介します。定義と使用法: <...
01. コマンドの概要Linux には充実したヘルプ マニュアルが用意されています。コマンドのパラメ...
スロットとは何ですか? Vue では、子コンポーネント タグの中央に何もラップできないことはわかって...
目次1. 結論から始めましょう2. キーの役割2.1 例2.2 上記の例を修正する2.3 例を再度修...
これは主に、場所パラメータのif判断の設定ジャンプです。迂回により、サーバーの負荷と圧力を軽減できま...
Docker イメージのダウンロードが停止したり、遅すぎたりするネットでいろいろな方法を検索しました...
1. フォントと文字表示の関係左側と右側の鋭角部分は Songti フォントで表示されます: &l...
これは純粋に CSS で実装された大きなドロップダウン メニューです。この大きなメニューは、js コ...
目次1. カプセル化API 2. グローバルツールコンポーネントを登録する3. グローバル関数をカプ...
Docker コンテナはさまざまな方法で管理およびデプロイできます。 Docker コマンドを直接使...
ローカル開発では、直接アクセスできない静的ファイル リソースのデバッグが必要になる場合があります。こ...
序文Bash には、ls、cd、mv などの重要な組み込みコマンドが多数あるほか、grep、awk、...
Nginx は、マスター プロセス (MasterProcess) と、同じ数のホスト CPU コア...
GtkTreeView コンポーネントは、美しい通常のリストやツリーのようなリストを作成できる高度な...