JavaScript 数组长度不正确

标签 javascript arrays

我有一个名为“plotData”的数据数组,它由任意数量的数据“行”组成,这些数据只是 4 元素数组。数组“plotData”使用 $.post() 脚本附加到代码中的几行中。 “...”是加载 post 请求中显示的一些变量的位置。

console.log("plotData (before update): ", plotData);
console.log("plotData length: ", plotData.length);

...
...
...

$.post(
    "/csvgen",
    {node_num: nodes.toString(), start_time: startTime.toString(), end_time: endTime.toString()},
    function(data){
        var nodeData = $.csv.toArrays(data);

        nodeData.forEach(function(element){
            plotData.push(element);
        });
    },
    "text"
);

我正在控制台中记录数组和 array.length,相信这两个方法调用应该按顺序执行。当我查看控制台输出时,数组的控制台日志显示有 28 个条目,但plotData.length的控制台日志是14。随着数组被附加,结果发现plotData的实际长度是始终比plotData.length控制台输出大14。

“plotData”数组在此代码之外读取,但未修改。

这是什么原因?

编辑以添加日志

Can't plot empty data set
TypeError: Cannot read property 'length' of undefined(…)
plotData (before update):  []
plotData length:  0
plotData (before update):  [Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4]]
plotData length:  14
plotData (before update):  [Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4]]
plotData length:  28
plotData (before update):  [Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4], Array[4]]
plotData length:  50

第一个错误是 b/c 当我实例化绘图时数据集为空。

最佳答案

您的代码在调用 post() 之前记录。尝试将日志记录语句添加到回调函数的末尾 - 它们应该显示“正确”的值(在附加新行之后)。

关于JavaScript 数组长度不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34620524/

相关文章:

javascript - 相当于 SQL 完全连接与 Javascript 对象数组

java - 确定数组中某个值的邻居之和是否等于设定值?

javascript - 我如何在 meteor 中记录一些东西?

javascript - jquery ui.slider : add click event to display/hide handle

javascript - 如何在 Angular 下拉列表中显示动态列

c++ - 我可以将结构数组别名为结构成员数组吗?

javascript - meteor .js : &lt;script&gt; tag doesn't work inside <body>

javascript - 如何在dart中编写on-*事件/回调注册

javascript - 无法使用 Javascript 从对象数组中添加行总和和列总和

javascript - 数组中的未定义条目在使用 `true` 将它们解析为 boolean 值后返回 `every`