0

所以,我有 JSON 以这种格式返回:

{
   "CC" : 23,
   "CT" : 36,
   "TT" : 12,
}

我需要计算这里代表了多少个 C 和多少个 T。例如,上面有 82 个 C (2*23 + 1*36) 和 60 个 T。然后将它们存储在一个新对象(或数组?)中,例如:

{
  "C" : 82,
  "T" : 60,
}

请记住,所涉及的字母是可变的,但始终只有两个,并且采用以下格式:AA、AB、BB。或者甚至可能更好,将键:值对放在一个数组中(因为这些将用于制作条形图)。

(对生物学家来说,是的,计算基因型的等位基因频率。)

4

1 回答 1

1

jsFiddle 示例:http: //jsfiddle.net/2HEVT/

代码:

function calc(o){
    var result={};
    for(var i=0;i<Object.keys(o).length;i++){
        str=Object.keys(o)[i];
        for(var j=0;j<str.length;j++){
            value=0;
            if(result.hasOwnProperty(str[j]))
                value=result[str[j]];
            result[str[j]]=value+o[str];
        }
    }
    return result;
}
于 2013-03-31T16:13:00.327 回答