需要计算JSON键出现*值

时间:2013-03-31 16:04:14

标签: javascript json

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

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

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

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

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

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

1 个答案:

答案 0 :(得分:1)

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

CODE:

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;
}