Альтернатива Object.keys и Object.values - PullRequest
0 голосов
/ 12 января 2019

Я где-то читал, что порядок ключей в объектах javascript не гарантирован. Как браузеры могут решить возвращать то, что они чувствуют.

И что в js есть новый тип объекта с именем Map, который позволяет вам упорядочивать объекты.

Но как мне это использовать, когда я отправляю данные с сервера в браузер? Передача объектов невозможна, мне нужно зашифровать с помощью json, и тогда класс Map потеряется в браузере

1 Ответ

0 голосов
/ 13 января 2019

Если вы пытаетесь отправить упорядоченную карту через JSON и сохранить порядок, вы можете разбить карту на массивы ключей и значений, а затем собрать их вместе в приемнике.

Сервер:

function mapToJSON(map) {
    return JSON.stringify({keys: Array.from(map.keys()), values: Array.from(map.values())});
}

Клиент:

function JSONToMap(json) {
    const {keys, values} = JSON.parse(json);
    const map = new Map;
    keys.forEach(key, i) {
        map.set(key, values[i]);
    }
    return map;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...