[英][javascript][iterable object] How to sum up the specific key's value in iterable object like array
如何在數組等可迭代對象中求和特定鍵的值,而特定鍵可以嵌套在對象鍵中。 示例:如何計算鍵名稱為val的鍵值的總和?
var list = {
val: 5,
child1: {
val : 10,
someotherKey: 'somevalue'
},
child2: {
val : 20,
someotherKey2: 'someothervalue
},
child3: {
someval: {
val: 15,
somekey3: 'somevalue3'
}
}
}
我嘗試了for for循環,例如for(列表中的鍵){
for(key in list) {
if(key === 'val') {
console.log(key);
}
if(list[key]['val']) {
console.log(key);
}
}
但無法解決。
使用遞歸並繼續將值加到sum
let sum = 0; var list = { val: 5, child1: { val : 10, someotherKey: 'somevalue' }, child2: { val : 20, someotherKey2: 'someothervalue' }, child3: { someval: { val: 15, somekey3: 'somevalue3' } } } function addVal(obj){ if(obj.val) { sum+=obj.val; } Object.keys(obj).forEach((key) => { if(typeof obj[key] === 'object') { addVal(obj[key]) } }) } addVal(list); console.log(sum)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.