o = o || {} 表示:如果o為null或undefined,則將o初始化空對象(即{}),否則o不變。目的是防止o為null或未定義的錯誤。
其中:||表示或操作,第一個條件為真,則結果為真而不需要執行第二個條件;否則執行第二個條件,等價於以下代碼:
if(o)
o = o;
else
o = {};
Array方法: reduce使用實例;
reduce()可以實現一個累加器的功能,將數組的每個值(從左到右)將其降低到一個值。
說實話剛開始理解這句話有點難度,它太抽象了。
場景: 統計一個數組中有多少個不重復的單詞
不使用reduce時:
var
arr = [
"apple"
,
"orange"
,
"apple"
,
"orange"
,
"pear"
,
"orange"
];
function
getWordCnt(){
var
obj = {};
for
(
var
i= 0, l = arr.length; i< l; i++){
var
item = arr[i];
obj[item] = (obj[item] +1 ) || 1;//第一次遍歷obj.apple是undefined,所以obj.apple取1;第二次遍歷obj.orange是undefined,所以obj.orange取1;第三次遍歷obj.apple已經是1了,所以obj.apple = 1+1;······
}
return
obj;
}
console.log(getWordCnt());
