2014-01-29 3 views
0

중첩 된 JavaScript 객체에서 발생 횟수를 계산하여 객체에 할당하려고합니다. for 루프가 필요하다는 것을 알고 있지만 매번 값을 계산하는 방법을 이해할 수는 없습니다. 내가 다시 이렇게 뭔가 싶어중첩 된 자바 스크립트 객체의 값 계산

var emmys = { 
    "Alex": { drama: "Bob", horror: "Devin", romCom: "Gail", thriller: "Kerry" }, 
    "Bob": { drama: "Mary", horror: "Hermann", romCom: "Fred", thriller: "Ivy" }, 
    "Cindy": { drama: "Cindy", horror: "Hermann", romCom: "Bob", thriller: "Bob" }, 
    "Devin": { drama: "Louise", horror: "John", romCom: "Bob", thriller: "Fred" }, 
    "Ernest": { drama: "Fred", horror: "Hermann", romCom: "Fred", thriller: "Ivy" }, 
    "Fred": { drama: "Louise", horror: "Alex", romCom: "Ivy", thriller: "Ivy" } 
} 

var showVote = { 
    drama: {}, 
    horror: {}, 
    romCom: {}, 
    thriller: {} 
} 

을 :

var result = Object.keys(emmys).reduce(function(res,person){ 
    var movieName =""; 
    Object.keys(emmys[person]).forEach(function(key){ 
     movieName = emmys[person][key]; 
     if (!res[key][movieName]){ res[key][movieName] = 0; } 
     res[key][movieName] += 1; 
    }); 
    return res; 
}, {drama: {},horror: {},romCom: {},thriller: {}}); 

: 나는 그 사람들 중 하나입니다

var showVote = { 
     drama: { Louise: 2}, //etc 
     horror: {Hermann: 3}, 
     romCom: {}, 
     thriller: {} 
    } 

답변

1

을 기본 기능을 좋아하는 여기에 내가 계산해야 할 대상이다 설명이 포함 된 이름을 사용하려고했지만 올바른 것이 맞는지 확신 할 수 없었습니다.

+1

+1 분명히 내 것보다 우아한 ... – PinnyM

+0

@PinnyM 고맙습니다. – Dalorzo