Javascript初學筆記10 物件操作練習-取出物件內容做加總(Object.values,for-in,filter(),reduce())

我們之前練習過Object的一些操作,這次用個實例來做練習,同樣是取出物件內容,我會採用兩種不同的做法。首先我們建立一個物件作為操作的例子。

 const performance = {
mike: 200,
bernard: 500,
cathy: undefined,
jane: 300,
danny() {
console.log('Hi Danny!')
}
}

很明顯的物件內包含了4組key-value pair以及一個函式,今天我的目標是加總所有人的表現,那有兩種做法是我目前可以採用的。

利用Object.values 配合filter() & reduce()

 let sum = 0
//將物件的值存進變數,此時的型態為array
let arr = Object.values(performance)
//利用filter將不是數字的值去掉
let filarr = arr.filter(item => typeof item === 'number')
//最後利用reduce加總陣列內的內容
sum += filarr.reduce(function(x,y){return x+y})//1000

利用for-in去選取物件的值做加總

let sum = 0
for (let item in performance){
if (typeof performance[item] === 'number'){
sum += performance[item]
}
}
console.log(sum) //1000

很明顯第二種來得單純許多,不過我想要練習filter跟reduce~!

發表留言