【发布时间】:2020-01-31 20:43:15
【问题描述】:
我想以这种方式使用reduce 构建一个对象:
const result = [1, 2].reduce((partialResult, actualValue) => {
// define someKey and someValue
partialResult[someKey] = someValue;
return partialResult
}, {});
但是,我收到以下 tslint 错误:
Modifying properties of existing object not allowed. (no-object-mutation)
我该如何解决这个问题?
【问题讨论】:
-
只是 FWIW,
reduce在那里没有用处。使用简单的循环会更容易阅读和维护。 -
您每次都使用相同的键,因此该对象将永远只有一个属性(使用键和最后一个值)。上面的最终结果实际上是
const result = {[someKey]: 2};我假设密钥确实从一个循环迭代到下一个循环迭代......? -
sameKey和someValue根据actualValue+ 其他与问题无关的因素而变化。 -
好好。 :-) 在问题中显示该变体的minimal reproducible example 版本会很有用,因此问题和 - 关键 - 它的答案都是明确的。
标签: javascript typescript-typings tslint