dogwood008の開発メモ!

最近のマイブームは機械学習, Ruby on Rails。中でも機械学習を使った金融商品の自動取引に興味があります。

【JavaScript】オブジェクト同士の比較:{} === {} は false

概要

{}  === {}  // => false

詳細

JavaScriptでの比較は、落とし穴が多い。詳しくは参考に挙げたページを見てもらえるとわかるが、 +0 === -0false になったりと良く知っていないとハマりがちである。

ではどうやって object 同士を比較すれば良いか、というのが気になるが、一番確実なのは object のうち、どれを比較すれば良いかを自分で管理して、それを比較するのが良いのではないだろうか。例えば、Userを表す object を比較する際は、 user.id 同士を比較するといった具合である。

なお、Rubyであれば Object#==? のオーバライド、Pythonであれば __eq__ のオーバライドすることで、オブジェクト同士が比較された際の挙動を変えられる。

参考

developer.mozilla.org