Мутация это изменение исходной структуры данных. Например:
const foo = {
bar: 'baz'
};
foo.bar = 'qux';
Так как объекты в JavaScript передаются по ссылке, то функция может изменить объект аргумента. Если это происходит, то функция не является чистой. Например:
const x = {a: 1, b: 1}
const mutateX = (origin) => {
origin.a += 2;
return origin;
}
const y = mutateX(x);
console.log(y, x) // {a:3, b:1}, {a:3, b:1}
Чистота функций очень важна, она гарантирует отсутствие багов, связанных со случайным изменением объектов. По этому, вместо того, чтобы изменять оригинал, в функциональном программировании принято работать с копией объекта.