Типовая справка - PullRequest
       2

Типовая справка

0 голосов
/ 19 сентября 2018

Итак, у меня есть веб-приложение, которое выполняет базовую аналитику некоторых импортированных пользователем данных.Это позволяет пользователю отображать столбцы, а мы показываем свойства на карте, показываем различную статистику по свойствам и т. Д.

Мы добавляем функцию, которая зависит от конкретного сопоставленного столбца, и когда я собираюсьиз-за этого я не могу понять вывод и почему у меня возникнет проблема.Соответствующая функция ниже.Я передаю ему список объектов и удаляю данные, связанные с единым полем.ТАК картография.Предположим, что это «Address», а mapping.field может быть, например, «Street Address» в CSV.

deleteMapping(field: string, data?: Array<any>, render?: boolean)
{
    if (!field || typeof field !== 'string')
        throw { message: "delete mapping expects a string parameter"}

    var mapping = this.mapping[field];

    if (!mapping)
        return;

    this.mapping[field] = null;
    this.inverseMapping[mapping.guess] = null;

    if (Array.isArray(data))
    {
        console.log(mapping.guess);
        console.log(data);
        for (var i = 0; i < data.length; i++)
        {
            console.log(data[i][mapping.guess]);
            data[i][mapping.guess] = null;
            console.log(data[i][mapping.guess]);
        }
        console.log(data);

        try
        {
            $("body").trigger("analytics:unbind",{ field: mapping.field, unified: mapping.guess, render: render === undefined ? true : render}); 
        }
        catch (e)
        {
            console.error(e);
        }
    }
}

Моя проблема в том, что консоль.Логи не имеют никакого смысла для меня.

  1. mapping.guess = 'Адрес', как и ожидалось
  2. data = Мой начальный массив, как и ожидалось
  3. Первые данные [i] [mapping.guess] = Адресиндивидуального свойства, как и ожидалось
  4. Вторые данные [i] [mapping.guess] = null, как и ожидалось
  5. data = My Initial Array UNCHANGED

Я не понимаю, почему элемент массива не проверяет свое значение.Есть идеи.Я также не знаю, как data [i] [mapping.guess] в массиве правильно возвращается в цикле.В конечном итоге в растерянности, так как я устанавливаю значение на ноль, то он возвращает ноль.Почему значение в массиве не будет нулевым после цикла?

Edit: ... думаю, я понял это.Думаю, что console.log немного асинхронный.Адрес восстанавливается в следующем событии unbind, и при печати он восстанавливается из других данных.Не понимал, что console.log может отложить результаты.

1 Ответ

0 голосов
/ 19 сентября 2018

Сложно, по крайней мере без полного кода.

Для точности отладки с console.log измените все вызовы console.log на console.log (JSON.stringify ... ex:

console.log(JSON.stringify(data,null,2)); // dont work with auto referencied objects

Без полного кода это трудно понять. Вы можете попробовать установить значение undefined или создать новый объект

data[i][mapping.guess] = {};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...