3
lodash
を使用して、オブジェクトのプロパティを選択的に変更したいと考えています。オブジェクトのフィルタリングされたプロパティに関数を適用するには、lodashを使用してください。
var foo = { 'a': 1, 'b': 2, 'c': 3 };
function addOne(num) {
return num + 1;
}
var propsToTransform = ['a', 'b'];
_(foo).pick(propsToTransfrom)
.map(addOne);
// I want foo = { 'a': 2, 'b':3, 'c':3 }
それは私が上に概説してきたか、私はandlrcが指摘したようにあなたが_.mapValues
と_.protoype.value
を探している
_.forEach(propsToTransform, (prop) => {
if (foo[prop]) {
foo[prop] = addOne(foo[prop]);
}
});
これは良い解決策です。あなたはもう少し積極的になり、「バー」で逃げることができます。 'merge'は' foo'を変更するので、 '_.merge(foo、_(foo).pick ....);に短縮されます。 'console'の出力を '{'a':2、 'b':3、 'c':3}にすることができれば、@dmlittleは受け入れられるとマークすることができます。 – trstephen
@trstephen done! :) – dmlittle