javascript - JavaScript数组长度不正确

标签 javascript arrays

我有一个名为“ plotData”的数据数组,其中包含任意数量的“行”数据,它们只是4个元素的数组。数组'plotData'使用$ .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 - JavaScript数组长度不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34620524/

相关文章:

javascript - 如何使用 Lodash 从基于另一个数组的数组中删除对象?

php - 在服务器端(PHP/MySQL)或客户端(js)上排序?

javascript - Ajax提交表单时收到400错误请求

java - Java数组:直接访问数组中的组件

javascript - 从4级json对象数组返回特定​​的json项

javascript - 避免仅在Enter键上提交表单

javascript - 如何在CKEditor5中创建Matcher实例?

javascript - 无法读取未定义的属性“undefined”,但我确定var有效

数组的 C++ 对齐未对齐属性

javascript - 在JavaScript中按字母顺序对数组及其对象键进行排序