pAequorFactory()中,当调用该函数来创建对象时.我希望.specimenNum对所有物体都是独一无二的.判断下面的代码

const pAequorFactory = (specimenNum, dna) => {
  return {
    specimenNum,
    dna,

    mutate() {
      randomBaseIndex = Math.floor[Math.random * 15];
      mutatedBase = returnRandBase();
      if (this.dna[randomBaseIndex] !== mutatedBase) {
        this.dna[randomBaseIndex] === mutatedBase;
        return this.dna;
      } else {
        mutate();
      }
    },

    compareDNA(object) {
      for (i = 0; i < 15; i++) {
        let j = 0;
        if (object.dna[i] === this.dna[i]) {
          j++;
        }
        let commonPercentage = (j / 15) * 100;
      }
      return `specimen #${this.specimenNum} and specimen #${object.specimenNum} have ${commonPercentage}% DNA in common`;
    },

    willLikelySurvive() {
      for (i = 0; i < 15; i++) {
        let j = 0;
        if (this.dna[i] === "C" || this.dna[i] === "G") {
          j++;
        }
        let survivePercentage = (j / 15) * 100;
      }
      return survivePercentage >= 60;
    },
  };
};

我还没有试过任何东西,但我正在想一种方法来比较每个物体的.specimenNum个.

推荐答案

The best way is to use closure

const pAequorFactory = () => {
  let specimenCount = 0; // To keep track of the number of specimens created

  return (dna) => {
    specimenCount++; // Increment the specimen count for each new specimen
    return {
      specimenNum: specimenCount, // Assign a unique specimen number
      dna,

      // Your remaining object properties here
    };
  };
};

// Example usage:
const createSpecimen = pAequorFactory();
const specimen1 = createSpecimen('ATCGATCGATCGATC');
const specimen2 = createSpecimen('GCTAGCTAGCTAGCT');

console.log(specimen1.specimenNum);
console.log(specimen2.specimenNum);

这将在您每次调用createspecimen时创建唯一的对象,唯一的属性将是ExampleenNum.

Javascript相关问答推荐

如何通过onClick为一组按钮分配功能;

如何修复内容安全策略指令脚本-SRC自身错误?

根据总价格对航班优惠数组进行排序并检索前五个结果- Angular HTTP请求

Klaro与Angular的集成

字节数组通过echo框架传输到JS blob

将状态向下传递给映射的子元素

我可以从React中的出口从主布局调用一个处理程序函数吗?

配置WebAssembly/Emscripten本地生成问题

setcallback是什么时候放到macrotask队列上的?

cypress中e2e测试上的Click()事件在Switch Element Plus组件上使用时不起作用

虚拟滚动实现使向下滚动可滚动到末尾

将核心模块导入另一个组件模块时存在多个主题

在数组中查找重叠对象并仅返回那些重叠对象

使用VUE和SCSS的数字滚动动画(&;内容生成)

为什么当我更新数据库时,我的所有组件都重新呈现?

如何访问此数组中的值?

使用可配置项目创建网格

在高位图中显示每个y轴系列的多个值

$GTE的mongoose 问题

使用props 将VUE 3组件导入JS文件