【发布时间】:2020-10-16 07:03:42
【问题描述】:
我想获取data.json文件,解析成一个对象,并使其成为可迭代对象。 (不要将对象数据类型更改为数组) 使其成为可迭代的使用
- 迭代器 2. 生成器 当该对象在 FOR OF 循环中传递时,我应该得到每个项目的输出,如下所示。 帖子 ID:1 标题:一些标题 帖子 ID:2 标题:其他标题 等等 … 这是 json 文件的链接[https://raw.githubusercontent.com/attainu/curriculum-master-fullstack/master/coding-challenges/deep-dive/iterators-data.json?token=AOGF265VMPYWFKXO6RNGXPS67WAMM][1]
console.log("connected");
function fetchJSONFile(path, callback) {
var httpRequest = new XMLHttpRequest();
httpRequest.onreadystatechange = function() {
if (httpRequest.readyState === 4) {
if (httpRequest.status === 200) {
var data = JSON.parse(httpRequest.responseText);
if (callback) callback(data);
}
}
};
httpRequest.open('GET', path);
httpRequest.send();
}
fetchJSONFile(`https://raw.githubusercontent.com/attainu/curriculum-master-fullstack/master/coding-challenges/deep-dive/iterators-data.json?token=AOGF265VMPYWFKXO6RNGXPS67WAMM`, function(data)
{
data[Symbol.iterator] = function()
{
var c=0;
return {
// I Don't know how to access the key of the object inside the object , Can you help me please??
next() {
c++;
if (c <= data.length) {
return { done: false, value: "value" };
} else {
return { done: true };
}
}
}};
for (let val of data) {
console.log(val);
}
});
【问题讨论】:
-
HTTP 请求是异步的。您是否希望立即获得迭代器?因为这不是它真正的工作方式。只能异步获取这样的迭代器。
-
你能详细说明一下吗?我完全不明白这个......提前谢谢......我在哪里可以阅读更多关于它的信息?
-
@trincot...请帮助
-
我担心你试图解决的挑战是要求你在现在不可用但将来可用的东西上生成一个迭代器(对 HTTP 请求的响应)。您无法迭代尚不存在的内容,那么您是否有关于预期内容的更准确信息?
-
Sir @trincot ..这部分是否可以通过某种方式实现(当对象在 FOR OF 循环中传递时,我应该按照以下模式获得每个项目的输出。帖子 ID:1 标题:一些title Post ID: 2 Some other title 等等)??谢谢
标签: javascript json object iterator generator