38 lines
1.4 KiB
JavaScript
38 lines
1.4 KiB
JavaScript
|
import _curry3 from "./internal/_curry3.js";
|
||
|
import prop from "./prop.js";
|
||
|
import equals from "./equals.js";
|
||
|
/**
|
||
|
* Returns `true` if the specified object property is equal, in
|
||
|
* [`R.equals`](#equals) terms, to the given value; `false` otherwise.
|
||
|
* You can test multiple properties with [`R.whereEq`](#whereEq),
|
||
|
* and test nested path property with [`R.pathEq`](#pathEq).
|
||
|
*
|
||
|
* @func
|
||
|
* @memberOf R
|
||
|
* @since v0.1.0
|
||
|
* @category Relation
|
||
|
* @sig a -> String -> Object -> Boolean
|
||
|
* @param {*} val The value to compare the property with
|
||
|
* @param {String} name the specified object property's key
|
||
|
* @param {*} obj The object to check the property in
|
||
|
* @return {Boolean} `true` if the value equals the specified object property,
|
||
|
* `false` otherwise.
|
||
|
* @see R.whereEq, R.pathEq, R.propSatisfies, R.equals
|
||
|
* @example
|
||
|
*
|
||
|
* const abby = {name: 'Abby', age: 7, hair: 'blond'};
|
||
|
* const fred = {name: 'Fred', age: 12, hair: 'brown'};
|
||
|
* const rusty = {name: 'Rusty', age: 10, hair: 'brown'};
|
||
|
* const alois = {name: 'Alois', age: 15, disposition: 'surly'};
|
||
|
* const kids = [abby, fred, rusty, alois];
|
||
|
* const hasBrownHair = R.propEq('brown', 'hair');
|
||
|
* R.filter(hasBrownHair, kids); //=> [fred, rusty]
|
||
|
*/
|
||
|
|
||
|
var propEq =
|
||
|
/*#__PURE__*/
|
||
|
_curry3(function propEq(val, name, obj) {
|
||
|
return equals(val, prop(name, obj));
|
||
|
});
|
||
|
|
||
|
export default propEq;
|