# matchesStrictComparable
# Description
matchesProperty
的专用版本,用于适合严格相等比较的源值,即===
。
创建一个函数,该函数执行给定对象路径到srcValue的值之间的部分深度比较,如果对象值相等,则返回true,否则返回false。
# Params
(key, srcValue)
srcValue - 要匹配的值。
# Return
Function
# Code
function matchesStrictComparable(key, srcValue) {
return (object) => {
if (object == null) {
return false
}
return object[key] === srcValue &&
(srcValue !== undefined || (key in Object(object)))
}
}
# Analyze
matchesStrictComparable
最终会返回一个 函数,返回的函数的参数为 object
,matchesStrictComparable
需要 key
值和 对比的 value
值作为参数
会判断,如果 object
为 null
,则返回 false
否则进行判断 object
当前 value
和 srcValue
严格相等,并且 srcValue
不是 undefined
,或者 key
在 object
上存在
# Remark
-
如果指定的属性在指定的对象或其原型链中,则in 运算符返回 true。
# Example
const a = {a: 1, b: 2, c: 3}
const fun = matchesStrictComparable('b', 2)
console.log(fun(a)) // true