Вложенный цикл для каждой переменной в файле JSON - PullRequest
0 голосов
/ 22 февраля 2020

В настоящее время я пишу бот-диск, который экономит c данные для своих пользователей. Ожидается, что приведенный ниже код будет l oop для каждого файла, сохраненного в папке (JSON с идентификатором пользователя в качестве имени), которая содержит массив идентификаторов «зданий», также называемых принадлежащими им элементами.

Вот уменьшенная JSON таблицы, которую я использую, где она найдет данные для зданий, которыми владеет пользователь (обратите внимание, что для каждой категории есть несколько категорий и «зданий»:

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

Приведенный ниже код циклически повторяется для каждого файла, затем циклически повторяется для каждой категории, кроме третьего l oop, который пытается l oop для каждого здания (как в строке "for (var e in econvar.category) {") отсчитывает от 0 до 15 и не находит совпадения с идентификатором.

"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 и различные методы l oop, но я либо получаю "получил 4 неопределенных", "получил 4 (затем 0-15 в каждой строке)", либо ошибка.

Спасибо. Надеюсь, это не слишком конкретно c, чтобы понять.

1 Ответ

0 голосов
/ 22 февраля 2020

В вашем последнем для l oop вы должны написать:

 for (var e in category){ // checks each building in the category for a match
    ...
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...