Estoy tratando de crear una función de fábrica que viene con un método mutate () que toma un elemento aleatorio en la propiedad object.dna y lo cambia a una base aleatoria de bases = ['A', 'T', 'C', 'G'] . Sin embargo, el elemento seleccionado aleatoriamente de object.dna debe cambiarse a una base diferente y no puede permanecer igual.
const pAequorFactory = (specimenNum, dna) => { return { specimenNum, dna, mutate() { const bases = ['A', 'T', 'C', 'G']; let selectedBase = this.dna[Math.floor(Math.random()*this.dna.length)]; let randomBase do { randomBase = bases[Math.floor(Math.random()*bases.length)]; // console.log(randomBase); } while (selectedBase === randomBase);} } } const a = [ 'G', 'C', 'A', 'T', 'C', 'G', 'G', 'A', 'C', 'G', 'G', 'T', 'T', 'A', 'G' ] let b =pAequorFactory(17, a) b.mutate; console.log(b.dna);Ejecuté el código anterior y esperaba que cambiara un elemento aleatorio en b.dna, pero no fue así.