Повторение ключей из хеш-карты javascript дает пустую строку для последнего элемента - PullRequest
0 голосов
/ 01 мая 2019

Мне нужны ключи из хеш-карты javascript / typcript в массиве.Я использую метод Map.Keys () и перебираю ключи для заполнения массива с именем: searchTerms.По какой-то причине последнее значение в массиве всегда является пустой строкой.

Когда я просматриваю hashMap в отладчике, я вижу именно то, что ожидаю;ключи типа string и значения массива строк без пустых ключей.

public setSearchTerms(searchMap: Map<string, Array<string>>) {
        if(searchMap && searchMap.size) {
            let myKeys = myMap.keys();
            this.searchTerms = [...myKeys];

           /*
            for(let k of myKeys) {
                if(k.length > 0) {
                    this.searchTerms.push(k);
                }
            }
            */
        }
    }

Когда я запускаю код как есть, массив searchTerms имеет все ключи с карты плюс пустую строку.Использование цикла for (текущий комментарий) также добавляет пустую строку, но я включил проверку длины, которая решает проблему.Я просто хочу понять, откуда взялась пустая строка.Я могу заставить его работать, но меня беспокоит, что я не могу понять, откуда взялась пустая строка.

1 Ответ

1 голос
/ 01 мая 2019

Похоже, это проблема cr / lf. Сделал hexdump исходного файла и в конце есть дополнительный 0a0d. Нашел предыдущий пост стека, который объяснил это. Спасибо за указание в правильном направлении. [Stack post на 0a0d cr / lf] [1]

Текстовый файл с переносами строк 0D 0D 0A

...