循环修改后如何访问原来的嵌套列表?

问题描述 投票:0回答:1

我现在正在修改嵌套列表并添加到数组中,当我修改嵌套列表时,它的行为非常奇怪,我错过了一些非常小的东西,但不知道是什么。

class Square {
  constructor() {
    this.value = null;
    this.next = null;
  }
}

let square = new Square();
square.value = [0, 0];

let arrayOfValues = [[1,2], [2, 3], [4, 5]];
let resultArray = [];
arrayOfValues.forEach(v => {
  let copy = square;
  while (copy.next !== null) {
    copy = copy.next;
  }
  let nextNode = new Square()
  nextNode.value = v;
  copy.next = nextNode;
  resultArray.push(square);
})

console.log(resultArray) //[{value: [0, 0], next: {value: [1, 2], next: {value: [2, 3], next: {value: [4, 5], next: null}}}},....]


// want to return [{value: [0, 0], next: {value: [1, 2], next: null}}, ....]
javascript list object nested
1个回答
-1
投票

使用这个更正后的版本:

class Square {
      constructor() {
        this.value = null;
        this.next = null;
      }
    }
    
    let arrayOfValues = [[1,2], [2, 3], [4, 5]];
    let resultArray = [];
    
    arrayOfValues.forEach(v => {
      let newSquare = new Square();
      newSquare.value = [0, 0];
      
      let nextNode = new Square();
      nextNode.value = v;
      newSquare.next = nextNode;
      
      resultArray.push(JSON.parse(JSON.stringify(newSquare)));
    });
    
    console.log(resultArray);
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.