合并Javascript数组的对象数量不正确

时间:2019-07-15 11:52:22

标签: javascript

我有两个SQL查询,将它们组合在一起以创建带有多个对象的单个数组。我可以使用.push()方法做到这一点。 (这是Rollbase平台内的javascript,因此是查询格式)。

但是,我无法理解结果。该对象是正确的,并且由正确的对象和值组成。但是,它说它拥有8个对象,而有13个对象。它似乎也只是从第一个查询中计算值:

代码段:

rbf_selectQuery("SELECT name,id,Ppm_objecten,'object' FROM pm_objecten", 2000, function(values) {
    var arr = values;
    for (i = 0; i < values.length; i++) {
        rbf_selectQuery("SELECT name,id,R82743 AS Ppm_objecten,'activiteit' FROM pm_activiteit WHERE R82743=" + values[i][1], 2000, function(values2) {
            for (n = 0; n < values2.length; n++) {
                if (values2.length > 0) {
                    arr.push(values2[n]);
                }
            }
        });
    }
    var length = arr.length;
    console.log(arr.length);
    console.log(arr);
    options.success({
        total: length,
        data: arr
    });
});

输出:

(8) [Array(4), Array(4), Array(4), Array(4), Array(4), Array(4), Array(4), Array(4)]
0: (4) ["Damwand", 72076, 68241, "object"]
1: (4) ["Fietsparkeergarage", 68238, 72042, "object"]
2: (4) ["Constructie", 68241, 68238, "object"]
3: (4) ["Systeem Fietsparkeergarage", 72042, null, "object"]
4: (4) ["Test Bovenliggend", 72043, null, "object"]
5: (4) ["Object onder Boven", 72074, 72043, "object"]
6: (4) ["Object onder onder", 72075, 72074, "object"]
7: (4) ["Test", 78394, null, "object"]
8: (4) ["Opstellen van een projectmanagementplan (PMP)", 74191, 68238, "activiteit"]
9: (4) ["Ontwerpen DO Fietsparkeergarage", 68248, 68238, "activiteit"]
10: (4) ["Ontwerpen UO Fietsparkeergarage", 68251, 68238, "activiteit"]
11: (4) ["Afdichting dek 80% gereed", 88220, 72042, "activiteit"]
12: (4) ["Afdichting dek resterende 20%", 88221, 72042, "activiteit"]
length: 13
__proto__: Array(0)

我只是不明白的是,为什么对象包含(8)个对象,如第一行所示。还有arr.length输出8。但是我看到并需要这13个对象...可以请人介绍我所缺少的吗?当输出typeOf()时,它们都是类型对象。

1 个答案:

答案 0 :(得分:0)

感谢@barbsan,我被带往正确的方向。由于我是Java语言的新手,所以我还不知道这一点。通过设置一个新的Promise来等待查询结果,我就能做到并理解原因。这是因为Javascript同步和异步过程。

感谢您的帮助。