一意のデータを探す場合
[find] は最初の一つが見つかったらきちんと処理を終了します
[filter] は見つかった後も無駄に処理を続けますユーザの CPU を無駄に使うと神奈川県警察に捕まります
……というのは冗談ですが無駄に処理を走らせていることは事実ですテスト用のコードと本番用のコードは分けた方が良いと思います
Loading...
APIから取得したデータなどでも信用していいのかという疑問がありました。
これはわかります。
これは本当に怪しい、と思うときは、受信した直後にわざと全件重複チェックをしてしまうのです。ここでfilterを使っても当然OKで、受信直後のデータに問題があれば「throw new Error」とかして、プログラムをそれ以上動作させないようにします。
ユニーク値を送ってこないのはAPIが悪い、という風に問題の切り分けが素早く行えます。取得したデータがユニークな値を持つデータなのか、ユニークな値を持たないデータなのかが、わからないままプログラムを動かして、あとあと、更新ボタンを押したら落ちる、とかじゃなくて、受信したデータはあるキーに対してユニークですよ。というのを保証しておけば、プログラム全体でfind使っても安心してつかえるようになります。
で、API側の実装で絶対にユニーク値は送らないですよ、ということが固定してきたら、そのエラー吐くユニークチェックコードを消しておけばパフォーマンスも問題にならないです。
そこまでやるのはめんどくさいと思うかもしれませんが、受信データが特定キーでユニークかどうかわからないままプログラミングするほうが、あとでかなりめんどうなことになりますし、特定キーでユニークかどうか安心してプログラム組めれば、findを使うのは当たり前になります。filterで毎回lengthが1件かどうかチェックするほうが大変というか冗長かと思います。