2016-06-10 3 views
0

배열의 객체 유형에 따라 객체의 수가 필요합니다. 나는 여기에 누락 무엇인지 모르겠지만,이게 내가하는 일이다 myArray 구성원이있는 경우JavaScript reduce는 배열이 비어 있으면 null을 반환합니다.

myCounts = (myArray || []).reduce(function _countMembersByType(counts, member) { 
    return counts[member.type === productType.GROUP ? 'groupCount' : 'individualCount']++; 
}, {groupCount: 0 , individualCount: 0}); 

myCountsnull 될 것입니다. 그렇지 않은 경우 예상대로 객체가 myCounts: {"groupCount":0,"individualCount":0}이됩니다.

저는 JS에 익숙하며 도움이됩니다.

+1

당신은 _When에서 myArray가 members_가 – mplungjan

답변

2

더하기 1'ing 결과를 반환하므로 다음 반복에서 이전 또는 counts이 기본 객체가 아닌 숫자가됩니다.

전체 개체를 반환해야합니다.

myCounts = (myArray || []).reduce(function _countMembersByType(counts, member) { 
    counts[member.type === productType.GROUP ? 'groupCount' : 'individualCount']++; 
    return counts; 
}, { 
    groupCount: 0, 
    individualCount: 0 
}); 

fiddle

+0

아 내가 볼 수없는 의미! 멍청한 실수! 감사 :) – Yalda

관련 문제