0

我需要计算数组 [i] 的最大数量,尽管当我添加 [i] 时使用此函数 max_individual = NaN 而不是数组的最大数量,我不知道为什么。然后,如果条件得到验证,我将这个数组的 max_number 加 1。

下面是代码。

pop_size=3;
gene_size=7;

var cloneGene = 1;
  for(var i=0; i<pop_size; i++){
     generation[i]=new Array(gene_size);
     var max_individual = Math.max.apply(Math, generation[i]);
     for(var j=0;j<gene_size; j++){
         generation[i][j]=1;
         random_number = random();

     //mutation_rate
         if(random_number < mutation_rate){
    cloneGene = generation[i][j]=generation[i][j]+1;

    document.write(cloneGene);
             }
           }
       }
4

3 回答 3

1
Math.max.apply(Math, array);

所以大概脱掉了[i]

Math.max.apply(Math, generation);
于 2013-09-20T10:54:04.923 回答
1

这是因为generation[i]是一个undefined值数组。

generation[i] = new Array(gene_size);

难怪您要返回 NaN。你试图从一堆什么都没有找到最大值。

小提琴

于 2013-09-20T10:57:09.190 回答
0

使用parseIntor parseFloat,因为 JavaScript 中没有特定的数据类型。

于 2013-09-20T10:50:44.870 回答