[英]getting the total of a nested object property
我有一個如下所示的對象,如何從每個屬性中獲取 ca 的總值
var temp1 = {test1: {ca:1, ba:2, da: 3}, test2: {ca:1, ba:2, da: 3}, test3: { ba:2, da: 3}}
有時 temp1 只能包含一個屬性作為 test1,所以為了滿足這種情況,我想找到對象的第一個屬性。 但是當 test2 test3 來時,我不能使用 0。此外,屬性 ca 可以存在與否。
temp1[Object.keys(temp1)[0]]
我試過了,我得到了輸出,但是我們可以改進這個嗎
var arr = []
Object.keys(temp1).forEach(o => {
Object.keys(temp1[o]).forEach(so => {
if(so === "ca"){
arr.push(temp1[o][so])
}
})
})
arr.reduce((a,b) => a + b)
預期輸出是
var total = 2
您可以reduce()
在Object.values()
你可以捕捉未定義的ca
與像短路ca || 0
ca || 0
-- 如果它被另外定義,它將使用ca
0:
var temp1 = {test1: {ca:1, ba:2, da: 3}, test2: {ca:1, ba:2, da: 3}, test3: { ba:2, da: 3}} let sum = Object.values(temp1).reduce((sum,{ca}) => sum + (ca || 0), 0) console.log(sum)
遍歷對象並檢查鍵是否存在。 如果是這樣,則將值添加到變量
var temp1 = { test1: { ca: 1, ba: 2, da: 3 }, test2: { ca: 1, ba: 2, da: 3 }, test3: { ba: 2, da: 3 } } function valueOfKeyToGet(key) { let val = 0; for (let keys in temp1) { if (temp1[keys][key] !== undefined) { val += temp1[keys][key]; } } console.log(val) } valueOfKeyToGet('ca')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.