📅  最后修改于: 2023-12-03 15:01:41.335000             🧑  作者: Mango
有时我们需要从一个文本文件中随机获取一行数据,比如从一个名字列表中获取一个随机名字。这篇文章将介绍如何使用 Javascript 从文本文件中获取随机行。
首先,我们需要知道如何读取一个文本文件。这可以通过使用 Javascript 中的 XMLHttpRequest
对象来实现。以下是一个简单的函数,可以将给定 URL 的文本内容读取到回调函数中:
function loadTextFile(url, callback) {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
callback(xhr.responseText);
}
};
xhr.open("GET", url, true);
xhr.send();
}
使用这个函数,我们可以读取一个文本文件,并将其文本内容传递给回调函数。
一旦我们有了文本内容,就可以将其转换为一个字符串数组,然后从中随机获取一个元素。以下是一个函数示例,用于读取文本文件并返回其中的随机行:
function loadRandomLineFromTextFile(url, callback) {
loadTextFile(url, function(text) {
var lines = text.split("\n");
var randomIndex = Math.floor(Math.random() * lines.length);
callback(lines[randomIndex]);
});
}
此函数将文本文件的 URL 和回调函数作为参数。它将文本文件的内容读取到字符串中,然后使用 split()
函数将其拆分为字符串数组。最后,它从数组中随机选择一个元素,并将其传递给回调函数。
以下是一个使用示例,读取 names.txt
文件并在网页中显示随机选择的名称:
<!DOCTYPE html>
<html>
<head>
<title>随机名称</title>
</head>
<body>
<h1>随机名称</h1>
<p id="name"></p>
<script>
function displayRandomName() {
loadRandomLineFromTextFile("names.txt", function(name) {
document.getElementById("name").textContent = name;
});
}
displayRandomName();
</script>
</body>
</html>
此示例定义了一个 HTML 页面,并使用 displayRandomName()
函数来显示一个随机名称。该函数通过调用 loadRandomLineFromTextFile()
函数来实现。当 HTML 页面加载时,该函数会自动执行,并将随机名称显示在 p
元素中。