Return this.DNA from mutate() instead of 'result'. Check splice documentation for more details... 'splice is a mutable function because it modifies the original array, while slice returns a new array'
const returnRandBase = () => {
const dnaBases = ['A', 'T', 'C', 'G']
return dnaBases[Math.floor(Math.random() * 4)]
}
const mockUpStrand = () => {
const newStrand = []
for (let i = 0; i < 15; i++) {
newStrand.push(returnRandBase())
}
return newStrand
}
const pAequorFactory = (specimenNum, DNA) => {
return {
specimenNum: specimenNum,
DNA: DNA,
mutate(){
let result =[];
this.DNA.splice(Math.floor(Math.random()*15), 1, returnRandBase());
return this.DNA;
}
}
};
var newObj = pAequorFactory(15, ['A', 'T', 'C', 'G', 'A', 'T', 'C', 'G', 'A', 'T', 'C', 'G', 'A', 'T', 'C']);
console.log(newObj.mutate());