1. 従来のコレクションに対するフィルター、マップ、および削減処理方法フィルター関数の主な目的は、配列要素をフィルターし、条件を満たす要素の配列を返すことです。 定数数値 = [10,20,30,111,222,333] newNums = nums.filter(function(n){ n<100を返す }) 出力:
map 関数は配列の各要素をマップし、新しい配列を返します。元の配列は変更されません。newNums の各数値を 2 倍にします。 定数数値 = [10,20,30,111,222,333] newNums = nums.map(function(n){ n*2を返す }) 出力:
Reduce 関数は主に、配列のすべての要素を加算したり乗算したりするなど、配列のすべての要素を要約するために使用されます。 定数数値 = [10,20,30,111,222,333] newNums = nums.reduce(function(preValue,n){ PreValue+n を返す },0) 出力:
次の包括的なケースに示すように、複数の治療法を組み合わせることもできます。 定数数値 = [10,20,30,111,222,333] newNums = nums.filter(function(n){ n<100を返す }).map(関数(n){ n*2を返す }).reduce(function(preValue,n){ preValue+n を返す },0) 結果:
配列コレクションには、filter メソッドに似た find メソッドもあります。 find() メソッドは主に、条件を満たす配列の最初の要素を返すために使用されます (要素がない場合、undefined を返します) var 配列 = [1,2,3,4,5,6,7]; var result = Array.find(function(value){ 戻り値 > 5; //条件}); console.log(結果); //6 console.log(配列); //[1,2,3,4,5,6,7] 同様に、vue の require.context の処理メカニズムを使用して、処理のためにファイルを走査することもできますが、次のコードに示すように、フィルターも使用する必要があります。 次のコードは、フォルダ内のファイルに対して実行するフィルタリング操作です。 const req = require.context('vue-awesome/icons', true, /\.js$/) 定数 requireAll = requireContext => requireContext.keys() 定数 re = /\.\/(.*)\.js/ const vueAwesomeIcons = requireAll(req).filter((key) => { return key.indexOf('index.js') < 0 }).map(i => { i.match(re)[1]を返す }) デフォルトの vueAwesomeIcons をエクスポートする 2. 再帰処理場合によっては、コレクションがネストされているため (children コレクションを含む children など)、キー属性に基づいて JSON コレクションをクエリする必要があります。この処理方法では再帰が必要です。 例えば、私が定義したメニューコレクションには、このようなネストされた構造があり、名前に応じて対応するオブジェクトを取得する必要がある場合、再帰処理関数が関与します。 まず、メニューの JSON コレクションを見てみましょう。 // このメニューデータは通常サーバーから返されます export const asyncMenus = [ { id: '1', pid: '-1'、 テキスト: 'ホームページ'、 アイコン: 'ダッシュボード'、 名前: 'ダッシュボード' }, { id: '2', pid: '-1'、 テキスト:「製品情報」、 アイコン: 'テーブル', 子供たち: [ { id: '2-1', pid: '2', テキスト:「製品表示」、 名前: 'product-show', アイコン: 'テーブル' }] }, { id: '3', pid: '-1', テキスト:「その他管理」、 アイコン: '例', 子供たち: [ { id: '3-1', pid: '3'、 テキスト:「アイコン管理」 名前: 'アイコン', アイコン: '例' }, { id: '3-3', pid: '3'、 テキスト: 'ツリー関数の表示'、 名前: '木'、 アイコン: '木' }, { id: '3-2', pid: '3'、 テキスト: 'セカンダリメニュー2'、 アイコン: '木'、 子供たち: [ { id: '3-2-2', pid: '3-2'、 テキスト: 'レベル 3 メニュー 2'、 名前: 'menu1-1', アイコン: 'フォーム' } ] } ] } ] ID に基づいてクエリをトラバースする必要がある場合、それは典型的な再帰クエリ処理です。 // メニューIDに応じて対応するメニューオブジェクトを取得します。FindMenuById(menuList, menuid) { (var i = 0; i < menuList.length; i++) { var item = メニューリスト[i]; if (item.id && item.id === menuid) { 返品商品 } そうでない場合 (item.children) { var foundItem = this.FindMenuById(item.children, menuid) if (foundItem) { // 見つかった場合のみfoundItemを返す } } } } ここで注目すべき点は、再帰時に次の直接的な return を使用できないことです。 this.FindMenuById(item.children, menuid) を返します。 返される結果があるかどうかを判断する必要があります。そうでないと、ネストされた再帰によって未定義の型が返される可能性があります。 var foundItem = this.FindMenuById(item.children, menuid) if (foundItem) { // 見つかった場合のみfoundItemを返す } 3. forEach トラバーサルコレクション処理多くの場合、コレクションに対してforEachトラバーサルを実行する必要があります。次のように、コレクションをキー値に従って処理し、グローバルフィルタの処理操作を登録します。 // グローバルフィルターをインポートする import * as filters from './filters' // グローバルを登録する filterObject.keys(filters).forEach(key => { Vue.filter(キー、フィルター[キー]) }) または、APIを介してデータを取得した後にコレクションを処理します // 辞書などをバインドするための製品タイプを取得します。GetProductType().then(data => { if (データ) { this.treedata = []; // ツリーリストをクリアする data.forEach(item => { this.productTypes.set(アイテムID、アイテム名) this.typeList.push({ キー: item.id, 値: item.name }) var ノード = { id: item.id, ラベル: item.name } this.treedata.push(ノード) }) // リスト情報を取得する this.getlist() } }); または、辞書データを要求するときに、空でない値の判断を実行します。 // 辞書型を使用してサーバーからデータを要求します GetDictData(this.typeName).then(data => { if (データ) { データ.forEach(アイテム => { if (item && typeof (item.Value) !== 'undefined' && item.Value !== '') { that.dictItems.push(アイテム) } }); } }) forEach() メソッドは、配列内の各要素に対してコールバック関数を 1 回実行するためにも使用されますが、戻り値はありません (または、戻り値が未定義です。コールバック関数に return ステートメントを記述しても、戻り値は未定義のままです)。 注: forEach に 2 つのパラメーターがある場合、最初のパラメーターはコレクション内の要素であり、2 番目のパラメーターはコレクションのインデックスです。 4. Object.assign 代入メソッド場合によっては、新しいコレクションを別のオブジェクトにコピーし、元のオブジェクトのプロパティ値を置き換える必要があります。この場合、Object オブジェクトの assignment メソッドを使用できます。 たとえば、編集インターフェイスが表示されると、要求されたオブジェクトのプロパティがフォーム オブジェクトにコピーされます。 var パラメータ = { id: id } GetProductDetail(param).then(データ => { オブジェクトにデータを割り当てます。 }) またはクエリを実行するときに、クエリ条件を取得して部分的な置換を実行します // 通常のページングクエリ条件を構築 var param = { タイプ: this.producttype === 'all' ? '' : this.producttype, ページインデックス: this.pageinfo.pageindex、 ページサイズ: this.pageinfo.pagesize }; // SearchForm 条件を param に追加し、クエリを送信します。 param.type = this.searchForm.ProductType // 対応する属性に変換します。 Object.assign(param, this.searchForm); 5. slice() メソッドslice() メソッドは、既存の配列から選択された要素を返します。 構文は次のとおりです。 配列オブジェクト.スライス(開始,終了) 次の例に示すように。 red = parseInt(color.slice(0, 2), 16) とします。 緑をparseInt(color.slice(2, 4), 16)とします。 青をparseInt(color.slice(4, 6), 16)とします。 または、フィルター機能を組み合わせてアイコンコレクションの一部を取得することもできます。 vueAwesomeIconsFiltered: 関数() { const that = this var list = that.vueAwesomeIcons.filter(item => { return item.indexOf(that.searchForm.label) >= 0 }) if (that.searchForm.pagesize > 0) { list.slice(0, that.searchForm.pagesize) を返します } それ以外 { リストを返します。 } } 以上が、Vue Element フロントエンドアプリケーション開発の従来の JS 処理機能の詳細です。Vue Element の従来の JS 処理機能の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: VMware仮想マシンでのLinuxのコピー&ペーストの詳細な説明
>>: GolangでMySQLデータベースのバックアップを実装する方法
目次MySQL マルチバージョン同時実行1. マルチバージョン同時実行制御1. 一貫した読み取り2....
Ubuntu コマンドライン ウィンドウで次の操作を実行します。 1. 仮想環境をインストールする...
目次序文Linux アプリケーション実行中に開いているファイルが多すぎる問題の分析と解決Linux ...
目次1. はじめに: 2. プロトタイプチェーン継承: 3. コンストラクタ継承の借用(オブジェクト...
conda アップデート conda pip で tf-nightly-gpu-2.0-previ...
mptemp は安全な方法で一時ファイルまたはディレクトリを作成します。このコマンドの適用範囲: R...
1. COUNT(*) と COUNT(COL) COUNT(*)は通常、主キーに対してインデックス...
私が学習していたときに使用していたバージョンは比較的新しいものであり、インターネット上のチュートリア...
htmlのデフォルトの送信方法は、postではなくgetです。postに変更したい場合は、 meth...
ソフトウェアバージョンウィンドウズ: ウィンドウズ10 MySQL: mysql-8.0.17-wi...
すべてのアニメーションの基本原理は、対応する画像を短時間で次々に表示し、視覚的に動いているように見せ...
では、早速リソースについて見ていきましょう。 123WORDPRESS.COM ダウンロードSQLy...
1. Linuxシステムにクロスシステムファイル転送ツールをインストールするルートユーザーのルートデ...
HTMLでCSSを定義するには、埋め込み、リンク、インラインの3つの方法が一般的に使用されます。 1...
forループを使用してZabbixイメージをコンテナにインポートします。 n を `ls *.tar...