array.toSource()学习遗传算法中的奇怪数据

时间:2011-03-01 21:14:13

标签: javascript genetic-algorithm

我刚刚开始学习遗传算法,我本质上是将本教程http://lethain.com/entry/2009/jan/02/genetic-algorithms-cool-name-damn-simple/写入javascript。有一些更好的代表我的数据集的变化。

无论如何,当我通过newPop.toSource()输出时,我得到了

[[#1=[[30,22],#2=[30,85],#3=[30,76]...]]],[#1#,#2#,#3#...#15]]]

我从来没有看到我的.toSource输出看起来像这样,我只期待一个内部有两个数组的数组

我的代码是

var newPop=populate(data,population,0,70);

function individual(population, min, max){
   var newIndivids=[];
   for(s in population){
      newIndivids.push(population[s]);
     newIndivids[s][0]+=rand;
   }
   return newIndivids;

}

function populate(count,population,min,max){
    var popul=[];
    for(indiv in count){
     popul.push(individual(population,min,max));
    }
    return popul;
}

我的代码中有什么东西我做错了,这给了我这个奇怪的数组结构吗?

1 个答案:

答案 0 :(得分:1)

不确定那些#1, #2, ...内容是什么,但toSource()是特定于gecko的:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/toSource
我的猜测是,它是内存中物体的某种“参考”,即不是便携式输出。

我建议您改用JSON.stringify,它将输出数据结构的可移植字符串表示形式。

{/ 1}}全局对象将在Firefox / Safari / Chrome中开箱即用,但如果您在IE中也需要它,可以在此处获取:http://www.json.org/js.html

然后要反转并获取实际的生物,请使用JSON

JSON.parse