javascript - 推送到另一个数组后清空数组

标签 javascript jquery

我想在循环内将数组 A 推送到 B,然后对于 B 的每次迭代,我需要删除数组 A 并创建新数组。我在清除数组之前获取了所有数据,但在清除之后我得到了带有空值的数组 B

代码:

for (i = 0; i < XArray.length; i++) {
    var pointsArray = [];

    for (j = 0; j < XArray.length; j++) {

        if (XArray[i] == XArray[j]) {
            pointsArray.push([parseFloat(YArray[i]), parseFloat(ZArray[i])]);
        }
    }

    dataSource.push({
        name: i,
        data: pointsArray
    });
    pointsArray.length = 0;
}

最佳答案

最后一行

pointsArray.length = 0;

删除您在第一行中创建的数组中的每个元素。由于所有对象都是通过引用分配的(数组也是对象),因此该对象的 data 属性现在将指向一个空数组。这是一个简化的示例:

var a = [1, 2];
var b = a;
a.length = 0;
console.log(b); // [] -- an empty array

因此,您当前的代码具有相同的效果

dataSource.push({
    name: i,
    data: []
});

解决方案:只需删除最后一行,它就会按预期工作。

关于javascript - 推送到另一个数组后清空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19092874/

相关文章:

javascript - 如何在点击时播放关键帧动画?

javascript - fancytree 是否有一个事件表明它已完全加载树中的数据?

javascript - 在 symfony 4 twig 模板中分离 JavaScript 文件

javascript - 使用 JS 和 HTML 将当前 URL 插入链接

javascript - 单击时获取带有类的 id

javascript - 如何使用 AJAX 和 php 将多个文件上传到服务器

jquery - 最佳实践 : How to configure jQuery UI with ASP. NET

javascript - 即使在使用js刷新后如何将项目保存在本地存储中

javascript - 可以把scss改成json吗?

Javascript 多词正则表达式