node.js - Passing/Comparing by reference for javascript objects -


i'm trying compare 2 objects. use socket.io send nodes object client.

my server.js goes:

var nodes = {'101':{id:'101',x:100,y:200},              '102':{id:'102',x:200,y:200}}; socket.emit('message', nodes); 

in client, i'd create copy of object nodes first time receives. save variable oldnodes , next time socket receives nodes object, comparison oldnodes , output property has been changed.

e.g., if receives var nodes = {'101':{id:'101',x:100,y:200},'102':{id:'102',x:200,y:300}};, should print(console.log) nodes[102].y changed.

client.html :

socket.on('message', function(nodes){     if (oldnodes == undefined){         var oldnodes = nodes;    }    else{        //compare oldnodes & nodes        //print result   } }); 

for copying, var oldnodes = nodes; not want since javascript passes objects reference. so, if oldnodes & nodes have same content, (oldnodes == nodes) produce false. how copy object , compare properties efficiently?

from code seems problem not passbyref related. if declare oldnodes outside of function , assign var inside if statement, oldnodes not defined in else block. might looking for?

if (oldnodes == undefined){     oldnodes = nodes; } 

Comments

Popular posts from this blog

OpenCV OpenCL: Convert Mat to Bitmap in JNI Layer for Android -

android - org.xmlpull.v1.XmlPullParserException: expected: START_TAG {http://schemas.xmlsoap.org/soap/envelope/}Envelope -

python - How to remove the Xframe Options header in django? -