2016-06-10 93 views
0

我需要根據數組中的對象類型計數我的對象數。我不知道我在這裏失蹤,但是這是我做的:如果數組爲空,則JavaScript reduce將返回null

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

myArray擁有成員,myCountsnull。否則,它將成爲我所期望的一個對象,如myCounts: {"groupCount":0,"individualCount":0}

我是JS新手,很感謝您的幫助!

+1

你的意思是_When myArray的沒有members_ – mplungjan

回答

2

您返回加1'的結果,因此在下一次迭代中,以前或counts將是一個數字而不是您的基礎對象。

您需要返回整個對象。

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

fiddle

+0

哦,我明白了!愚蠢的錯誤!謝謝 :) – Yalda

相關問題