RamdaJS: После операции с объектом мои ключи переставляются в алфавитном порядке?Ожидаемая? - PullRequest
0 голосов
/ 11 мая 2019

Это, кажется, происходит с довольно большим количеством функций Ramda, которые я использую.В качестве примера я читаю документацию для mergeAll: https://ramdajs.com/docs/#mergeAll

Пример документации гласит:

R.mergeAll([{foo:1},{bar:2},{baz:3}]); //=> {foo:1,bar:2,baz:3}

Это то, что я хочу !

Если я попробую точно такую ​​же команду в Ramda REPL:

https://ramdajs.com/repl/?v=0.26.1#?R.mergeAll%28%5B%7Bfoo%3A1%7D%2C%7Bbar%3A2%7D%2C%7Bbaz%3A3%7D%5D%29%3B

Вывод: {"bar": 2, "baz": 3, "foo": 1}

Ключи объектов сортируются в алфавитном порядке,Это ожидаемое поведение и документация неверна?

Я пытаюсь сделать что-то прямо сейчас, где порядок ключей довольно важен, и эта сортировка по алфавиту доказывает проблему!(

1 Ответ

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

Это просто артефакт форматирования вывода REPL.

Другая версия , которая использует console.log, показывает, что они действительно в том порядке, в котором вы ожидаете. Однако я категорически согласен с Пойнти в том, что на этот приказ следует не рассчитывать почти на все.

Команда Ramda обсудила фактическое упорядочение ключей в алфавитном порядке при создании объектов, чтобы избежать определенного класса ошибок. Это противоречиво, и по прошествии нескольких лет решение по этому вопросу принято не было.

...