2017-01-19 6 views
3

ОС Windows 8.1 | IE11 - v11.0.9 | lodash - v4.17.4Ошибка IE11, когда JSON.stringify результат объединенного объекта lodash

Учитывая, что я использую lodash merge, чтобы объединить один объект в другой. Если объект, который должен быть объединен, имеет число, (целое или строковое), ключ. И результат подается в JSON.stringify. Затем я должен увидеть два объекта, объединенных в результирующую строку.

const a = { 
    '1': 1 
}; 
const b = { 
    key: { 
    '2': 2 
    } 
}; 
_.merge(a, b); 
console.log(JSON.stringify(a)); //-> {"1":1,"key":{}} 

Ожидать: { "1": 1, "ключ": { "2": 2}}

Фактический: { "1": 1, "ключ": {}}

JsFiddle: https://jsfiddle.net/0a7euzas/10/

Интересно, если добавить свойство с альфа-символом, или добавленным/предваряется буквенным символом к ​​свойству «2» ключевого объекта, выходная строка является правильной.

ответ

2

IE11 на Windows 8.1, похоже, имеет ошибку с JSON.stringify на любой глубине, где, если объект имеет только числовые клавиши под UINT32_MAX - 1, он будет сериализовать его на пустой объект.

Это было единственное, что я видел для этого случая. Решение бедняков, как вы заметили, состоит в том, чтобы добавить буквенно-цифровой ключ и просто игнорировать его при десериализации на обратном пути.

Example from our codebase

 Смежные вопросы

  • Нет связанных вопросов^_^