gpt4 book ai didi

javascript - Node.js 循环和 JSON 构建

转载 作者:太空宇宙 更新时间:2023-11-04 01:11:39 25 4
gpt4 key购买 nike

尊敬的人们......

这是我的node.js代码... https://gist.github.com/SkyKOG/99d47dbe5a2cec97426b

我正在尝试解析我们的考试结果数据...示例... http://www.vtualerts.com/results/get_res.php?usn=1MV09IS002&sem=7

我正在得到结果......并且我也正在回溯以前的似乎......所有工作都有效,但回溯是随机发生的...循环可能出了问题...

            json.results = [];

var output = '';

var k = response.query.results.body.div.div[0].table[1].tr.length;

for (var j = 1; j < k; j++) {

for (var i = 0; i <= 5; i++) {
var result_obj = {};
result_obj.subjects = [];

for (key in response.query.results.body.div.div[0].table[1].tr[j].td[i]) {
if (typeof response.query.results.body.div.div[0].table[1].tr[j].td[i].em === "undefined") {
continue;
}

var subject_obj = {};

output += "Subject : " + response.query.results.body.div.div[0].table[1].tr[j].td[i].em + " " + "\n";

var subtext = response.query.results.body.div.div[0].table[1].tr[j].td[i].em + " " + "\n";
subject_obj.subjectname = subtext.replace(/[(].*[)]/, "").trim();

result_obj.subjects.push(subject_obj);
console.log(subject_obj);
break;

}

console.log(result_obj.subjects);

我认为有一些类似于异步概念的东西需要正确实现才能使 sem 按正确的顺序重新排序......

并获取这种格式的 JSON ... https://gist.github.com/SkyKOG/3845d6a94cea3b744296我不认为我将创建的对象推到正确的范围...

请在这方面提供帮助......谢谢......

最佳答案

(我将回答排序部分。建议将 JSON 问题作为一个单独的问题以适应问答格式。)

当您在代码中发出 HTTP 请求时(请参阅下面的行),您将在响应的执行顺序中引入不同的延迟

new YQL.exec(queryname, function (response) {

您需要自己跟踪请求的顺序,或者使用库来为您完成此操作。

自己编码

为了解决这个问题,您需要一些东西来跟踪请求的原始顺序。由于闭包的工作方式,您不能只增加一个简单的计数器,因为随着循环的进行,它会在全局范围内发生变化。解决这个问题的惯用方法是将计数器传递给立即执行的函数(作为值类型)

例如

var responseData = [];
for ( var i = 0; i < 100; i++ ){
(function(){
...
// http call goes in here somewhere
responseData[i] = data_from_this_response
...
})(i)
}

使用库

查看草兰优秀库中的async.parallel()调用。您向它传递一个函数数组,它将返回您的回调并包含一个结果数组。

https://github.com/caolan/async/#parallel

您需要创建一个循环,用 curried 填充数组包含适当变量的函数版本。

关于javascript - Node.js 循环和 JSON 构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16707027/

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