Javascript数组给出的长度不正确,输出不一致



我正在开发一个简单的前端文件读取器,用于读取20x15映射(行x列(并发送到后端。然而,由于代码输出中的不一致性(如下所示,输入1与输入2(,我面临着一些问题。我已经注销了这些值,并意识到尽管每行只有15个字符,但arr.length=16,直到input1的最后一行。

我的代码片段如下所示,它是在点击时触发的。

function readFile (evt) {
var files = evt.target.files;
var file = files[0];           
var reader = new FileReader();
reader.onload = function(event) {
var list = event.target.result.split("n");
console.log(list.length);

map = [];
for (var i = 0; i < ROWS; i++) {
console.log(list[i].length)
console.log(list[i])
map[i] = Array.from(list[i].split("").map(Number));
}
socket.emit('load_map', {loaded_map: map});
console.log("Sent loaded map to backend");

drawMap(resetMap());
console.log("Loaded map in frontend UI");
}
reader.readAsText(file);

};

当我使用输入1时,

000000001100000
000000000000000
000000000000000
111100000000000
000100010000000
000000001000000
000000000100000
000000000010000
000100000010000
111100000010000
000100000000000
000000000000000
000000000000000
000000000000001
000000000000001
000011111100001
000000000000000
000000000000000
000000000000000
000000011100000

我得到以下输出,

20
16
000000001100000
16
000000000000000
...
15
000000011100000

当我使用输入2时,

000000000100000
010000000000000
000000000000000
000001000000000
000000000111000
000100000000000
000100000000000
000100000000000
000100000000000
000100000001000
000100000001000
000000000001000
000000000001000
000000000001000
000000000001000
000111000000000
000000000100000
000000000000000
000000000000010
000001000000000

我得到以下输出,

20
15
000000000100000
15
010000000000000
...
15
000001000000000

有人能告诉我为什么会发生这种事吗?

谢谢!:-(

这不是数组的长度,而是每行的字符串长度

可能会有尾随的空白,这通常无法在这个网站上复制——当其他人尝试时,通常会导致"它在这里工作">

它甚至可能是一个不可见的空白字符,包括一个\r\n不带n的字符。

要检查尾部空白(不会检查不可见(,一个容易记住的方法是使用一些框架字符:

console.log("[" + str + "]")

一旦确定了错误的来源,只需修剪线条就足够了。

最新更新