Разделение данных, возвращаемых из запроса Fishbowl (SQL) - PullRequest
0 голосов
/ 27 апреля 2020

Я пытаюсь разделить возвращаемые данные из Fishbowl на массивы, но зацикливаюсь на логике c, необходимой для обработки всех возможных случаев. Рассмотрим следующие возможные данные (каждая представляет собой одну строку, которая вместе передается в виде массива, также есть строка заголовка столбца):

Сценарий A

"1", "This is text, it might have a comma.","5"

Сценарий B

"1","This one ends in an undefined value.",

Сценарий C

"1","Here we have undefined value in the middle of the return.",,"6"

Как видите, это не просто разделение CSV, потому что 1, текст может иметь запятую, а 2 мне нужно избавиться заблудших кавычек. Мне удалось учесть сценарии A и B в моем коде, но я не могу понять, как лучше всего подходить к сценарию C, который бы вставлял и неопределенное значение массива. Я не ожидаю, что ведущий неопределен в моем случае.

function QueryResultFormatter(result) {
    if (!Array.isArray(result)) { return undefined; }

    let rows = result.map(r => {
        while (r.endsWith(',')) {
            // Handles trailing null values.
            r = r.slice(0, r.length - 1);
        }

        // Slice gets rid of first and last quotation, split handles the rest.
        let s = r.slice(1, r.length - 1).split('","');
        return s;
    });
    rows.shift(); // Removes header line

    return rows;
}
...