Что с JavaScript?
Один из важных моментов в изучении любого языка - разобраться какие типы данных передаются/присваиваются по значению, а какие по ссылке. Хотя бы бегло, но нужно пробежаться по какому-нибудь учебнику, чтобы меньше удивляться в будущем.
b = a;
это копия адреса объекта "а", а не значение, для иного результата используй _.cloneDeep из lodash