通过检查每个值来更新对象值的最干净的方法

  • 本文关键字:对象 方法 更新 javascript dry
  • 更新时间 :
  • 英文 :


以下代码将对象中的值更改为新值,但基于第三个limits对象对每个属性施加阈值限制。

const oldValues = {
value1: 10,
value2: 20,
}
const newValues = {
value1: 1,
value2: 100,
}
const limits = {
value1: 20,
value2: 30,
}
const outputValues = {
value1: newValues.value1 < limits.value1 ? newValues.value1 : limits.value1,
value2: newValues.value2 < limits.value2 ? newValues.value2 : limits.value2,
}
// outputs: {value1: 1, value2: 30}

这很好,但如果我添加更多的属性,这段代码就会变得非常重复和繁琐。有没有更干净、更短的方法来完成同样的事情?

您可以使用循环遍历字段。您修改的示例:

const oldValues = {
value1: 10,
value2: 20,
}
const newValues = {
value1: 1,
value2: 100,
}
const limits = {
value1: 20,
value2: 30,
}
const outputValues = {}
for (let key in newValues) {
outputValues[key] = Math.min(newValues[key], limits[key]);
}
// outputs: {value1: 1, value2: 30}

你可以将其提取到一个方法中,如果需要的话,如何使其更可重用取决于你自己。

相关内容

  • 没有找到相关文章

最新更新