We can use the Lodash mapValues
method to map property values of a JavaScript object to new values.
For instance, we can write:
const mapped = _.mapValues({
one: 1,
two: 2,
three: 3
}, (v) => {
return v * 3;
});
console.log(mapped)
We pass in the object we want to transform the property values for as the first argument.
Then we pass in a function to return the mapped value given the property value v
,
Therefore, mapped
is:
{one: 3, two: 6, three: 9}
Use the Object.entries and Object.assign Methods
We can use the Object.entries
method to get the key-value pairs of an object as an array.
Then we can call map
to maps the key-value pair to what we want.
And then we can use Object.assign
to create a new object from the key-value pairs.
For instance, we can write:
const obj = {
one: 1,
two: 2,
three: 3
}
const props = Object.entries(obj).map(([k, v]) => ({
[k]: v * 3
}))
const mapped = Object.assign(...props);
console.log(mapped)
We call Object.entries
with obj
.
Then we call map
to map the v
property value to their new values and return an array of objects each with their own key-value pair with the mapped property value.
Next, we spread the props
into Object.assign
with the props
array spread into Object.assign
as arguments.
Therefore, mapped
is the same as the previous example.