【问题标题】:Nested looping for each variable in a JSON fileJSON文件中每个变量的嵌套循环
【发布时间】:2020-02-21 21:46:25
【问题描述】:

我目前正在编写一个不和谐的机器人,它正在为其用户保存经济数据。下面的代码预计会循环保存在文件夹中的每个文件(以用户 ID 作为其名称的 JSON),其中包含他们拥有的“建筑物”的 ID 数组。

这是我正在使用的表格的缩小 JSON,它将在其中找到用户拥有的建筑物的数据(请注意,每个类别都有多个类别和“建筑物”:

{ 
  "small_buildings" : [ 
    {
      "description" : "basic description",
      "name" : "basic item",
      "income" : 500,
      "startprice" : 30000,
      "id" : 1
    }
    ]
}

下面的代码循环每个文件,然后循环每个类别,但第三个循环尝试循环每个建筑物(如“for(var e in econvar.category){”行)从 0-15 计数并且找不到与 id 匹配的内容。

“econvar”标记json表的文件位置。

        files.forEach(function (file) {
        let jsonArr = require("C:/discordbot/econdata/" + (file)) // get the initial file
        jsonArr.forEach(function(i){    // for each number in the array of the economy data file
            console.log("got to 2 " + i)
            for(var category in econvar) { // checks for each category in the economy.json file for a match
                console.log("got to 3 " + category)
                for (var e in econvar.category){ // checks each building in the category for a match
                    console.log("got to 4 " + e)
                    if (e.id == i) {
                        console.log("got to 5 " + e.income)
                        total += e.income;
                        channel.send("totalcount: " + total)
                    }
                }
            }
        })
    });

我已尝试更改变量 e、变量 econvar.category 和不同的循环技术,但我要么得到“得到 4 个未定义”、“得到 4(然后每行 0-15)”,要么出现错误.

谢谢。我希望它不是太具体而无法理解。

【问题讨论】:

  • 我想补充一下,我是初学者,如果不是很明显的话。我已经编写 JavaScript 代码几个月了。

标签: javascript arrays json loops


【解决方案1】:

在你的最后一个 for 循环中你应该写:

 for (var e in category){ // checks each building in the category for a match
    ...
 }

【讨论】:

  • 这让我更加接近了。我已经尝试过了,它使我进入“达到 4(然后数 0-15)”,但显然它似乎不是在循环 Json 文件中的某些内容,而是针对类别名称中的每个字母,这不好因为我试图为实际类别中的每个变量循环它。谢谢。
  • 您能否提供一个完整的 json 数据示例?
  • 我的整个 JSON 可以在这里找到。 hastebin.com/exocotoguy.json 但是,我通过将类别循环分成单独的进程找到了解决此问题的方法,因为类别的数量可能不会经常变化。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-11
  • 1970-01-01
  • 2020-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多