链接列表删除在javascript中删除console.log之前的节点

时间:2017-02-10 14:09:26

标签: javascript data-structures linked-list prototype this

所以,我在js中创建了一个标准的链表列表,它工作得很好但是这种情况发生在例如/.....

     var myRef = new LinkedList()  //let's say with vals 1->2->3   
     console.log(myRef) //2->3  They are both the same!!!! even though delete happens later in code!!!
     myRef.deleteFirst();

    console.log(myRef)  //2->3 They are both the Same!! 

    LinkedList.prototype.deleteFirst = function() {
       if (this.head.next == null) {
       return;
  }
  var dummy = this.head.next.next;
  var value = this.head.next.data;
  delete this.head.next;
  this.head.next = dummy;
  this.head.length -= 1;

  return value;

}

2 个答案:

答案 0 :(得分:0)

试试这个:

console.log(JSON.stringify(myRef));

这将打印对象的stringify版本。因此,取而代之的是对象将获取对象的内容,否则因为myRef是一个指针,其内容将更改,日志显示最新值。

答案 1 :(得分:0)

控制台将引用该对象,该对象将在对象更新时更新。你可以这样做:

console.log(jQuery.extend(true, {}, myRef));

将创建对象的独立副本。这将允许您检查不同的状态。