簡體   English   中英

[javascript] [可迭代對象]如何總結可迭代對象(如數組)中特定鍵的值

[英][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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM