我們之前練習過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~!