Home

function: updateWith


updateWith(object: Object, path: Array, string, updater: function, customizer: function): Object

This method is like `update` except that it accepts `customizer` which is invoked to produce the objects of `path`. If `customizer` returns `undefined` path creation is handled by the method instead. The `customizer` is invoked with three arguments: (nsValue, key, nsObject). **Note:** This method mutates `object`.

Example(s):

const object = {}

updateWith(object, '[0][1]', constant('a'), Object)
// => { '0': { '1': 'a' } }

Params:

Name Type Attribute Description
object The object to modify.
path The path of the property to set.
updater The function to produce the updated value.
customizer The function to customize assigned values.

Returns:

Object

  {
    "comment": "/**\r\n * This method is like `update` except that it accepts `customizer` which is\r\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\r\n * path creation is handled by the method instead. The `customizer` is invoked\r\n * with three arguments: (nsValue, key, nsObject).\r\n *\r\n * **Note:** This method mutates `object`.\r\n *\r\n * @since 4.6.0\r\n * @category Object\r\n * @param {Object} object The object to modify.\r\n * @param {Array|string} path The path of the property to set.\r\n * @param {Function} updater The function to produce the updated value.\r\n * @param {Function} [customizer] The function to customize assigned values.\r\n * @returns {Object} Returns `object`.\r\n * @example\r\n *\r\n * const object = {}\r\n *\r\n * updateWith(object, '[0][1]', constant('a'), Object)\r\n * // => { '0': { '1': 'a' } }\r\n */",
    "meta": {
        "range": [
            881,
            1095
        ],
        "filename": "updateWith.js",
        "lineno": 25,
        "path": "C:\\Users\\beaujeup\\projects\\jsdoc-template\\examples\\lodash\\lodash-repo",
        "code": {
            "id": "astnode100011508",
            "name": "updateWith",
            "type": "FunctionDeclaration",
            "paramnames": [
                "object",
                "path",
                "updater",
                "customizer"
            ]
        },
        "vars": {
            "customizer": "updateWith~customizer"
        }
    },
    "description": "This method is like `update` except that it accepts `customizer` which is\rinvoked to produce the objects of `path`. If `customizer` returns `undefined`\rpath creation is handled by the method instead. The `customizer` is invoked\rwith three arguments: (nsValue, key, nsObject).\r\r**Note:** This method mutates `object`.",
    "since": "4.6.0",
    "tags": [
        {
            "originalTitle": "category",
            "title": "category",
            "text": "Object",
            "value": "Object"
        }
    ],
    "params": [
        {
            "type": {
                "names": [
                    "Object"
                ]
            },
            "description": "The object to modify.",
            "name": "object"
        },
        {
            "type": {
                "names": [
                    "Array",
                    "string"
                ]
            },
            "description": "The path of the property to set.",
            "name": "path"
        },
        {
            "type": {
                "names": [
                    "function"
                ]
            },
            "description": "The function to produce the updated value.",
            "name": "updater"
        },
        {
            "type": {
                "names": [
                    "function"
                ]
            },
            "optional": true,
            "description": "The function to customize assigned values.",
            "name": "customizer"
        }
    ],
    "returns": [
        {
            "type": {
                "names": [
                    "Object"
                ]
            },
            "description": "Returns `object`."
        }
    ],
    "examples": [
        "const object = {}\r\rupdateWith(object, '[0][1]', constant('a'), Object)\r// => { '0': { '1': 'a' } }"
    ],
    "name": "updateWith",
    "longname": "updateWith",
    "kind": "function",
    "scope": "global",
    "___id": "T000002R001044",
    "___s": true,
    "filepath": "updateWith.js"
}