Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Лень проверять, но всё же: стандартный Map (ECMAScript 2016, но вроде уже давно есть во всех браузерах) проблему не решает?
it('should return no value for prototype property after serialize/deserialize action', async function (): Promise<void> {
// arrange
const map = stringMap();
// act
const deserialized = JSON.parse(JSON.stringify(map));
const ctor = deserialized['constructor'];
// assert
expect(noValue(ctor)).to.be.equal(true);
});
А для новичков — что за тестовый Фреймворк и где почитать*
const a = {}; нужно использовать const a = Object.create(null);, если очень хочется реализовать структуру MapОни, конечно, применимы и даже необходимы, если в качестве ключа нужно использовать объект, а не строку или число.
Не совсем так: ключами объекта могут быть ТОЛЬКО строки. Если использовать число в качестве ключа объекта, оно будет преобразовано в строку.
function get(object, key){
return object.hasOwnProperty(key) ? object[key] : undefined
}
Еще один нюанс JavaScript, о котором все знают, но не все задумываются