gpt4 book ai didi

javascript - 在 JavaScript 中将多个外部 js 文件中的相同变量与不同数组连接起来

转载 作者:行者123 更新时间:2023-11-28 17:29:56 24 4
gpt4 key购买 nike

我制作了一个离线网络应用程序:

<!DOCTYPE html>
<html dir="rtl">
<head>
<meta charset="utf-8">
<style><!-- some style here --></style>
<script>
var rqid = location.hash.replace('#','');
var js = Math.ceil(rqid / 100);
var id = rqid - ((js - 1) * 100) - 1;
var tg = document.createElement('script')
tg.src = js + '.js'
tg.type = 'text/javascript'
document.head.appendChild(tg);
window.onload = function load() {
var body='<h1>' + title[id] + '</h1> <article>' + content[id] + '</article>';
document.getElementById("body").innerHTML = body;}
</script>
</head>
<body id='body'>
</body>
</html>

上面是简化的 article.html 文件,它显示了存储在外部 .js 文件中的文章,每个文件都有两个变量。

1.js contains

title = ['title of article1','title of article2',...,'title of article100'];
content = ['content of article1','content of article2',...,'content of article100'];

2.js contains

title = ['title of article101','title of article102',...,'title of article200'];
content = ['content of article101','content of article102',...,'content of article200'];

例如,article.html#11.js加载到html中,然后显示article1article .html#101 加载 2.js 并显示 article101

它工作正常,但我为此应用程序编写的搜索引擎有问题。搜索引擎代码相当庞大。无法在此处共享。

问题是 .js 文件中的相同变量被一一覆盖。

<script src="1.js"></script>
<script src="2.js"></script>
<script src="3.js"></script>

因此,搜索仅在 3.js 中完成。

The question is: Is it possible to dynamically join title/content arrays in those .js files and have a unified title/content variable like the following, so the search can be performed in all articles?

title = ['title of article1',...,'title of article200'];
content = ['content of article1',...,'content of article200'];

如果不可能,只需说,但请不要建议重组存储的数据。

我想补充一点,速度/性能不是问题,以防它会变慢。

最佳答案

这是一个简单的示例,说明如何在无需重组 1.js2.js.. 的情况下执行此操作。

为了这个示例的目的,我创建了一个假装的获取,如果您有任何真实的 URL,它可以获取 1.js2.js测试后,我们应该能够将 fetch 模拟替换为真实的模拟。

const pretenddata = {
"1.js":
`title = ['title of article1','title of article2','title of article100'];
content = ['content of article1','content of article2','content of article100']`,
"2.js": `title = ['title of article101','title of article102','title of article200'];
content = ['content of article101','content of article102','content of article200'];`
};

//lets create a pretend fetch..
function fetch(url) {
function astext() {
return new Promise((resolve) => {
resolve(pretenddata[url]);
});
}
return new Promise((resolve) => {
resolve({text: astext});
});
}

async function test() {
var combined_title = [];
var combined_content = [];
async function getData(url) {
const r = await(await fetch(url)).text();
var d = new Function(`${r}; return [title, content]`)();
combined_title = combined_title.concat(d[0]);
combined_content = combined_content.concat(d[1]);
}
await Promise.all([
getData("1.js"),
getData("2.js")
]);
console.log(combined_title);
console.log(combined_content);
}

test();

关于javascript - 在 JavaScript 中将多个外部 js 文件中的相同变量与不同数组连接起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50688219/

24 4 0
文章推荐: html - 调整图像大小以占据整个
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com