Tag: 循环引用

在Javascript中防止数组中的循环引用

我有一个像下面这样的数据结构。 array=[ {id:"a",children:[ {id:"b",children:[ {id:"d",children:[]}]}, {id:"c",children:[]}]} ] 如果我想在“c”(“a”,“e”没有string,但是节点的副本)中插入元素{id:"e", children:["a","f"] ,检查它是否存在于上层树中,因此会创build一个循环引用。 所以我觉得我必须反向走arrays。 但是因为我对JavaScript和Node很新,所以我不知道该怎么做。 这会是一个好主意,创build一个数组,我将所有的依赖存储在? 像这样的东西: [ a:[], b:[a], c:[a,b] d:[a,b] ] 那么我可以查找数组中的父级,并会看到在c中,a和b已经依赖

将循环引用的对象从服务器传递到客户端JavaScript,同时保持循环

我试图从node.js服务器的循环引用传递一个对象到客户端JavaScript。 服务器(node.js): var object = { circular: object } //…. app.get('/', function(req, res){ res.render('index.jade', {object: object}); }); 客户端Jade / Javascript script var object = !{JSON.stringify(object)}; 在这里我得到的object包含循环引用的错误。 任何方式来获得object在客户端JavaScript, 有 或没有循环引用?

带有循环引用的Javascript深克隆对象

我从Dmitriy Pichugin的现有答案中复制了下面的函数。 这个函数可以深入克隆一个没有任何循环引用的对象 – 它的工作。 function deepClone( obj ) { if( !obj || true == obj ) //this also handles boolean as true and false return obj; var objType = typeof( obj ); if( "number" == objType || "string" == objType ) // add your immutables here return obj; var result = Array.isArray( obj ) […]

在Nodejs中,当我console.log一个req对象,引用是什么? 如何确定

在Nodejs中,当我console.log一个req对象时,[Circular]是什么意思? 以下是一个基于nodejs示例的console.log(req)示例。 注意request.socket._readWatcher.socket是一个[Circular]。 这是否意味着它本身? 我怎样才能解除引用? { socket: { bufferSize: 0, fd: 7, type: 'tcp4', allowHalfOpen: true, _readWatcher: { socket: [Circular], callback: [Function: onReadable] }, destroyed: false, readable: true, _writeQueue: [], _writeQueueEncoding: [], _writeQueueFD: [], _writeQueueCallbacks: [], _writeWatcher: { socket: [Circular], callback: [Function: onWritable] }, writable: true, _writeImpl: [Function], _readImpl: [Function], _shutdownImpl: [Function], remoteAddress: '127.0.1.1', remotePort: […]

有没有办法在JavaScript中testing循环引用?

我正在做一个游戏,我遇到了一个问题…当我试图保存,JSON失败,并报告循环引用正在某处。 我不认为它实际上是,我看不到它,所以有一个algorithm或任何东西可以告诉我究竟(哪些对象和东西之间)? 另外,是否有一个可以保存循环引用的JSON替代方法? 我正在运行一个node.js服务器,我看到这个 ,但是我不能让它工作(它不是作为一个模块,我可以要求()在我的代码)。