Creates a function that iterates over `pairs` and invokes the corresponding function of the first predicate to return truthy. The predicate-function pairs are invoked with the `this` binding and arguments of the created function.
const func = cond([
[matches({ 'a': 1 }), constant('matches A')],
[conforms({ 'b': isNumber }), constant('matches B')],
[stubTrue, constant('no match')]
])
func({ 'a': 1, 'b': 2 })
// => 'matches A'
func({ 'a': 0, 'b': 1 })
// => 'matches B'
func({ 'a': '1', 'b': '2' })
// => 'no match'
| Name | Type | Attribute | Description |
|---|---|---|---|
| pairs | The predicate-function pairs. |
{
"comment": "/**\r\n * Creates a function that iterates over `pairs` and invokes the corresponding\r\n * function of the first predicate to return truthy. The predicate-function\r\n * pairs are invoked with the `this` binding and arguments of the created\r\n * function.\r\n *\r\n * @since 4.0.0\r\n * @category Util\r\n * @param {Array} pairs The predicate-function pairs.\r\n * @returns {Function} Returns the new composite function.\r\n * @example\r\n *\r\n * const func = cond([\r\n * [matches({ 'a': 1 }), constant('matches A')],\r\n * [conforms({ 'b': isNumber }), constant('matches B')],\r\n * [stubTrue, constant('no match')]\r\n * ])\r\n *\r\n * func({ 'a': 1, 'b': 2 })\r\n * // => 'matches A'\r\n *\r\n * func({ 'a': 0, 'b': 1 })\r\n * // => 'matches B'\r\n *\r\n * func({ 'a': '1', 'b': '2' })\r\n * // => 'no match'\r\n */",
"meta": {
"range": [
855,
1337
],
"filename": "cond.js",
"lineno": 30,
"path": "C:\\Users\\beaujeup\\projects\\jsdoc-template\\examples\\lodash\\lodash-repo",
"code": {
"id": "astnode100000744",
"name": "cond",
"type": "FunctionDeclaration",
"paramnames": [
"pairs"
]
},
"vars": {
"length": "cond~length",
"pairs": "cond~pairs",
"": null
}
},
"description": "Creates a function that iterates over `pairs` and invokes the corresponding\rfunction of the first predicate to return truthy. The predicate-function\rpairs are invoked with the `this` binding and arguments of the created\rfunction.",
"since": "4.0.0",
"tags": [
{
"originalTitle": "category",
"title": "category",
"text": "Util",
"value": "Util"
}
],
"params": [
{
"type": {
"names": [
"Array"
]
},
"description": "The predicate-function pairs.",
"name": "pairs"
}
],
"returns": [
{
"type": {
"names": [
"function"
]
},
"description": "Returns the new composite function."
}
],
"examples": [
"const func = cond([\r [matches({ 'a': 1 }), constant('matches A')],\r [conforms({ 'b': isNumber }), constant('matches B')],\r [stubTrue, constant('no match')]\r])\r\rfunc({ 'a': 1, 'b': 2 })\r// => 'matches A'\r\rfunc({ 'a': 0, 'b': 1 })\r// => 'matches B'\r\rfunc({ 'a': '1', 'b': '2' })\r// => 'no match'"
],
"name": "cond",
"longname": "cond",
"kind": "function",
"scope": "global",
"___id": "T000002R000083",
"___s": true,
"filepath": "cond.js"
}