添加二维对象的值-forEach?

问题描述 投票:1回答:2

我如何迭代并获取子对象内所有值的总和?

在下面的示例中,我想添加所有windows

let house = {
  livingroom: { windows: 6, doors: 4 },
  bedroom: { windows: 4, doors: 2 },
  bathroom: { windows: 2, doors: 1 },
  garden: { windows: 0, doors: 2 }
}

我也尝试过:Object.values(house).reduce(sum, curr => sum + curr));let x += Object.values(house).forEach(sum => sum);

javascript object key key-value
2个回答
1
投票

您可以尝试这个

Object.values(house).map(item => item.windows).reduce((accumulator, currentValue) => accumulator + currentValue)

1
投票

如果理解正确,则需要迭代这些值,可以使用Object.values

let house = {
  livingroom: { windows: 6, doors: 4 },
  bedroom: { windows: 4, doors: 2 },
  bathroom: { windows: 2, doors: 1 },
  garden: { windows: 0, doors: 2 }
}

let count = { windows: 0, doors: 0 }

for (const room of Object.values(house)) {
  count.windows += room.windows
  count.doors += room.doors
}

console.log(count)
© www.soinside.com 2019 - 2024. All rights reserved.