javascript - マップと forEach のネストされた走査、配列を返す方法は?
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-05-19 10:21:54
0
7
1042

アプリケーションシナリオ

テーブルのフィルタリングには複数のフィルタリング条件が含まれる場合があります。this.filter にはすべてのフィルタリング条件の v-model ステータスのオブジェクトが格納されます。this.tableData はすべてのフィルタリング条件の配列です。バックエンドから取得した元のテーブル データ、this.filteredTableData は、フィルター処理されたテーブル データの配列です。

###コード### リーリー ###質問###

このように書くと、2 番目の

console.log(this.filteredTableData)

は、すべて

未定義

である配列を取得します。このエラーは、forEach が return を使用してループを抜け出すことができないために発生するはずです。 だから知りたいのです:
マップを使用するときにこの関数を実装するにはどうすればよいですか?マップ内で変数を使用しないのが最善です (使用できますが、パフォーマンスが心配なだけです)。

  • this.filteredTableData
  • のデータ量が特に大きい場合、何か良い方法はありますか?
曾经蜡笔没有小新
曾经蜡笔没有小新

全員に返信(7)
漂亮男人

[].filter を直接使用します...

いいねを押す +0
伊谢尔伦

質問は少し理解するのが難しいです
マップを配列に変換したい場合は
[...map]」と入力するだけです

いいねを押す +0
Ty80

フィルターの方が適切です。

また、変数を追加するとパフォーマンスに影響するという考えはどこから来たのでしょうか。パフォーマンス上の問題が発生する前に、パフォーマンス上の問題があるだろうという推測に頼らないでください。

代わりに通常の for ループを使用するか、判断するには forEach の外側で bool 値を定義する必要があります。

いいねを押す +0
phpcn_u1582

以前、map と forEach を使用することで発生した問題に遭遇したことがありますが、後で for...in と for...of を合理的に使用することで問題を解決できました。問題を解決するために必ずしも map と forEach を使用する必要はありません。

いいねを押す +0
習慣沉默

これを forEach で使用しないでください

リーリー
いいねを押す +0
巴扎黑

配列がundefinedで埋められている質問に答えましょう。

map関数にreturnが無い場合は当然戻り値はありません 表示されない戻り値は当然未定義です。

これはトラバースが返されない結果に相当し、無駄な労力です。

mapのコールバック関数はこう書けばいいんじゃないでしょうか?

リーリー

答えなかったふりをして、この質問をもう一度読んでください。 return Object.keys(this.filter) は意味がありません。

次のような中間変数を使用する必要があります:

リーリー
いいねを押す +0
漂亮男人

そう言いたいのか分かりませんが。


リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート