javascript - 谁能解释以下 Javascript 代码行为?

标签 javascript arrays json

这是我的 Javascript 代码:

var subRow = [];
var rowarr = [];
subRow.push({ v: "Jay" });
subRow.push({ v: "Ram" });
rowarr.push({ c: subRow });
subRow.length = 0;
subRow.push({ v: "Jay1" });
subRow.push({ v: "Ram1" });
rowarr.push({ c: subRow });
console.log(JSON.stringify(rowarr));

输出是:

    [{
    "c": [{
        "v": "Jay1"
    }, {
        "v": "Ram1"
    }]
}, {
    "c": [{
        "v": "Jay1"
    }, {
        "v": "Ram1"
    }]
}]

预期的输出是:

    [{
    "c": [{
        "v": "Jay"
    }, {
        "v": "Ram"
    }]
}, {
    "c": [{
        "v": "Jay1"
    }, {
        "v": "Ram1"
    }]
}]

谁能解释一下为什么会这样?

最佳答案

数组通过引用处理。

subRow.length = 0; 删除数组的内容。

rowarr 然后包含两个指向同一个数组的指针(其中只有清空后放入其中的内容)

subRow.length = 0; 更改为 subRow = [] 以处理新数组而不是修改现有数组。

关于javascript - 谁能解释以下 Javascript 代码行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17463526/

相关文章:

java - jackson IOException : Can not deserialize Class com. mycompany.models.Person$Address(类型为非静态成员类)作为 Bean

javascript - document.write() 中到底发生了什么?

c - 将 double 组设置为等于返回值而不声明维度

javascript - 如何使用 XMLHttpRequest 从 json 生成变量?

java - 为什么我们在 Java 中有 Arrays 和 Array

php - 合并数组元素

java - 我可以使用动态字段从 JSON 有效负载创建 Java 17 记录吗?

json - curl 到 libcurl http put json 格式的请求

javascript - gsap tweenlite/tweenmax 垃圾收集、引用和性能

javascript - 动态设置页面背景图片