Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
[javascript][iterable object]如何汇总特定键';iterable类对象数组中的s值_Javascript_Arraylist_Javascript Objects - Fatal编程技术网

[javascript][iterable object]如何汇总特定键';iterable类对象数组中的s值

[javascript][iterable object]如何汇总特定键';iterable类对象数组中的s值,javascript,arraylist,javascript-objects,Javascript,Arraylist,Javascript Objects,当特定键可以嵌套在对象键中时,如何在类似iterable对象的数组中求和特定键的值。 例子: 如何对键名为val的键值求和 var list = { val: 5, child1: { val : 10, someotherKey: 'somevalue' }, child2: { val : 20, someotherKey2: 'someothervalue }, child3: { someval: { val: 15, somekey3: 'somevalue

当特定键可以嵌套在对象键中时,如何在类似iterable对象的数组中求和特定键的值。 例子: 如何对键名为val的键值求和

var list = {
val: 5,
child1: {
  val : 10,
  someotherKey: 'somevalue'
},
child2: {
  val : 20,
  someotherKey2: 'someothervalue
},
child3: {
  someval: {
  val: 15,
  somekey3: 'somevalue3'
    }
  }
}
我试过像这样的循环 用于(输入列表){


但无法找到解决方案。

使用递归并继续将值添加到总和

let sum=0;
变量列表={
瓦尔:5,
儿童1:{
瓦尔:10,
someotherKey:'somevalue'
},
儿童2:{
瓦尔:20,
someotherKey2:“someothervalue”
},
儿童3:{
某时:{
瓦尔:15,
somekey3:“somevalue3”
}
}
}
函数addVal(obj){
如果(对象值){
sum+=obj.val;
}
Object.keys(obj.forEach)((key)=>{
如果(对象的类型[键]=“对象”){
addVal(对象[键])
}
})
}
addVal(列表);

console.log(sum)
val
键嵌套的深度有多深?只有一个级别,还是一个任意数字?另外,在您的数据中没有可替代的数组使用
array.prototype.reduce()
,即
reduce()
方法对累加器和数组的每个值应用一个函数,以将其减少为单个值。感谢您使用递归给出的答案。@SiddharthRay,如果它满足要求,您可以接受作为答案吗?我无权这样做。声誉不足15的人不能投票。sry。
 for(key in list) {
  if(key === 'val') {
  console.log(key);
  }
  if(list[key]['val']) {
    console.log(key);
   }
  }