javascript变量

尝试把连线节点和位置存储在本地,但是每次都只存储最后一组数据,这是为什么呢?

function saveline() {
    var line = {}, x = 0;
    for (var k = 0; k < node.length; k++) {
        line[x] = getLineData(node[k], node[k + 1], "Right-middle", "Left-middle");
        x++;
        k++;
    }
    localStorage.setItem('Lines', JSON.stringify(line));
}

img

这是因为在循环中,每次都会重新定义line对象,而不是将新的数据添加到已有的对象中。因此,每次循环只会存储最后一组数据。要解决这个问题,可以将line对象定义在循环外面,并使用line[x]来添加新的数据。例如:

function saveline() {
    var line = {};
    var x = 0;
    for (var k = 0; k < node.length; k++) {
        line[x] = getLineData(node[k], node[k + 1], "Right-middle", "Left-middle");
        x++;
        k++;
    }
    localStorage.setItem('Lines', JSON.stringify(line));
}
```java


```

你k每次加两回,当然是每两个节点都拿到R和L