Skip to content

update

INFO

This function is only available in es-toolkit/compat for compatibility reasons. It either has alternative native JavaScript APIs or isn't fully optimized yet.

When imported from es-toolkit/compat, it behaves exactly like lodash and provides the same functionalities, as detailed @here.

Updates the value at the specified path of the given object using an updater function. If any part of the path doesn't exist, it will be created.

Signature

typescript
function update<T extends object | null | undefined>(
  obj: T,
  path: PropertyKey | readonly PropertyKey[],
  updater: (value: unknown) => unknown
): T;

Parameters

  • obj (T): The object to modify.
  • path (PropertyKey | readonly PropertyKey[]): The path of the property to update.
  • updater ((value: unknown) => unknown): The function to produce the updated value.

Returns

(T): The modified object.

Examples

typescript
import { update } from 'es-toolkit/compat';

const object = { a: [{ b: { c: 3 } }] };

// Update a value using an updater function
update(object, 'a[0].b.c', n => (n as number) * 2);
// => { a: [{ b: { c: 6 } }] }

// Create a value if the path doesn't exist
update({}, 'a.b[0]', () => 'c');
// => { a: { b: ['c'] } }

Released under the MIT License.