javascript - 如何从两个具有键的对象中获取新的 JavaScript 对象,并在键匹配时取平均值
问题描述
例如,我有两个对象:
let firstObject =
{
'x' : 3,
'y' : 2,
'z' : 1
}
let secondObject =
{
'x' : 1,
'y' : 5,
'c' : 3
}
是否可以从两个对象中获取所有键的新对象,并在键匹配时计算两个值的平均值,所以新对象看起来像这样?
newObject =
{
'x' : 2, // ((3+1)/2)
'y' : 3.5, // ((2+5)/2)
'z' : 1, // z only in one object, so do nothing and just add to new objects with key : value
'c' : 3 // c only in one object, so do nothing and just add to new objects with key : value
}
键的值始终 > 0
解决方案
使用 Object.entries 和 forEach。改变第一个对象。取决于 undefined + n 是假的 NaN,所以 || 将使用第二个值。
let firstObject =
{
'x' : 3,
'y' : 2,
'z' : 1
}
let secondObject =
{
'x' : 1,
'y' : 5,
'c' : 3
}
Object.entries(secondObject).forEach(([k,v])=>firstObject[k]=(firstObject[k]+v)/2||v)
console.log(firstObject)
推荐阅读
- php - Wordpress 替换已存在帖子中的单词
- reactjs - NextJS:在子组件中获取数据并传递给父组件
- git - 重新定位到功能分支
- keycloak - Keycloak - 用户会话注释过早过期
- c - Unix套接字卡在accept()
- java - 我的资源目录中的文件没有被复制到使用 IntelliJ 调试的类目录
- reactjs - 在 React.js 中使用 Braintree 或常规 PayPal 创建订阅计划
- javascript - ERROR 错误:InvalidPipeArgument:管道“DatePipe”的“12-01-2020 - 12-02-2020”到日期
- python - 创建 Postgres 数据库时出现身份验证错误
- android - 三星互联网无法使用 App Links?其他浏览器/设备是否也不兼容?