gpt4 book ai didi

JavaScript split() 方法导致未定义

转载 作者:行者123 更新时间:2023-11-29 18:18:23 25 4
gpt4 key购买 nike

我正在开发一个简单的程序,它将从数组中选择一个随机字符串。

我从一个预定义的数组开始,但大约进行到一半时我想知道使用文本文件 (.txt) 是否会更简单(或更优雅),因为我已经有点过了1000 个项目。

我在这里找到了这个解决方案(我不认为这是我的功劳)并且它对我有用......

function readTextFile(file) {
var items = [];
var rawFile = new XMLHttpRequest();
rawFile.open("GET", file, true);
rawFile.onreadystatechange = function() {
if(rawFile.readyState === 4)
{
if(rawFile.status === 200 || rawFile.status === 0)
{
var items = rawFile.responseText.split('\n');
alert(items[0]);
}
}
};
rawFile.send(null);
}

readTextFile('source.txt');

...在一定程度上。

我希望 array items[] 每一项包含一行。换句话说,我想按新行拆分。但是,当我使用 split('\n') 时,所有数组项在 items[0] 之后都是不安全的。

上面示例中的

items[0] 成为第一句话,所以 much 是正确的。如果我想 alert items[1] 我会得到 undefined。

如果我使用一些其他的分割点,比如 split(''),它会正常工作,将每个项目的每个字符分开直到换行,然后我再次得到 undefined。

假设 .txt 的第一行是“asd”:所以'asd'在数组中定义为:

items[0] = 'a'
items[1] = 's'
items[2] = 'd'
items[3] = undefined

这就是我会得到的。我哪里错了?

文本文件内容:

asfe
asdasdasd
asdasd

fgfg

最佳答案

尝试添加一个字符串转换:

var items = String(rawFile.responseText).split('\n');

关于JavaScript split() 方法导致未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21075692/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com