2D Javascript数组未返回“第二维数组”的正确长度]]

问题描述 投票:0回答:2

我正在尝试在Javascript中动态创建“ 2D”数组,但显然,它更像是数组数组。数组中的每个数组(我将在这里称为“第二维数组”)都是根据用户上传的文件动态分配的。该文件的格式为:

表示文件中图形所代表的行数的整数。

表示构成该图形的一条线的坐标数的整数。

该行中的坐标,每对之间用换行符分隔。

表示图形下一行中坐标数的另一个整数。

该行中的坐标,每对之间用换行符分隔。

...等

例如:

3

3

5.0 2.0

3.4 6.7

7.8 9.6

6

5.0 2.0

3.4 6.7

7.8 9.6

8.9 7.8

9.6 4.3

3.7 2.7

4

4.0 4.0

7.8 5.0

3.8 8.3

2.1 7.6

您明白了。

这是我的代码,在将文件转换为字符串后,将其解析:

function parseDat(contents) {
    var dirtyArray = contents.split("\n");
    var fileArray = dirtyArray.filter(function (n) { return (n !== undefined && n !== null && n !== ""); });


        var lineArray = new Array(parseInt(fileArray[i], 10) + 1);
        lineArray[0] = fileArray[i];

        i++;

        for(var j = 1; j < lineArray.length; j++) {
            lineArray[j] = new Array(fileArray[i]);
            console.log(fileArray[i]);
            console.log("2d array length = " + lineArray[j].length);
            i++;
            for(var k = 0; k < lineArray[j].length; k++, i++) {
                lineArray[j][k] = fileArray[i];
            }

        }

        return lineArray;


}

[基本上,我检查第二维数组的长度,在我给的示例文件中,第一行应为3。 console.log(fileArray [i])返回正确的数字,但是当我使用lineArray [j] .length时,由于某种原因,答案始终是1。我已经检查了Javascript中2D数组的许多其他来源,检查第二维数组长度的方法始终适用于它们。

[请帮助,我知道这可能只是我犯的一些愚蠢的错误。

我正在尝试在Javascript中动态创建“ 2D”数组,但显然,它更像是数组数组。数组中的每个数组(在这里我将其称为“第二维数组”)是...

javascript arrays
2个回答
1
投票

也许您可以“忽略”问题。如果console.log(fileArray[i])确实给出了正确的数字,则可以在下面的声明中使用它:


0
投票

我是一个白痴,没有将我的字符串转换为整数。因此,我将数组的长度设置为等于字符串“ 3”(即1长),而不是3。解决方法是更改​​

© www.soinside.com 2019 - 2024. All rights reserved.