javascript
のObject
を比較する方法についてネットで検索します。すべての解決策は、一般的にJSON.stringify
に焦点を当てています。 JSON.stringify
は、絶対属性のみを持つオブジェクトを固定値と比較します。JSON.stringifyはオブジェクトの機能を比較できません。それがどのように働きますか?
The JSON.stringify() method converts a JavaScript value to a JSON stringです。
あります(基本的に)2ビルトインタイプJS(null
とundefined
は特別なもの)で:
プリミティブ型(ブール値、数値、文字列、ヌル*、未定義*)。
参照型 - プリミティブを除くすべてがfunction
のようにオブジェクトとして扱われます。
なぜJSON.stringify
は、その機能を持つオブジェクトを比較できないのですか?
var a = {a:'xyz',
fun: function() { var a = 10;}};
var b = {a:'xyz',
fun: function() { var a = 10;}};
a == b => false
a === b => false
a.fun == b.fun => false
a.a == b.a => true
私はその後、私は、オブジェクトの比較のためにJSON.stringify
を発見し、ネットで検索。
JSON.stringify(a) === JSON.stringify(b) => true
が、私は修正b
var b = {a:'xyz',
fun: function() { var a = 15;}}; //change a from 10 to 15.
にしようとすると、今、私は
JSON.stringify(a) === JSON.stringify(b) => true
どのように可能とどのように機能するプロパティを持つオブジェクトを比較することを確認しますか?
ノートのような代用品を使用してください。重複はこの点についてさらに議論する。 – JJJ
'({})=({})' - !私はすでにこれらの質問を経て、このそれでJSON.stringify' 'のようなソリューションが、主な問題を発見した@WoozyCoder、より複雑なオブジェクトが –
を比較するチャンスがありません関数の変数値を変更したときにプロンプト「真」を返します。 – eigenharsha