Javascript Lodash等于函数

Javascript Lodash等于函数,javascript,functional-programming,underscore.js,lodash,Javascript,Functional Programming,Underscore.js,Lodash,我需要对给定的地图进行几个操作: var keys = { a: 1, b: 2, c: 1, d: 2, e: 2 } _.findKey(keys, function(value) { return value === 2; }); // "b" _.omit(keys, function(value) { return value === 2; }); // {a: 1, c: 1} 我想通过比较立即创建回调。像这样的 function equals(lh

我需要对给定的地图进行几个操作:

var keys = {
  a: 1,
  b: 2,
  c: 1,
  d: 2,
  e: 2
}
_.findKey(keys, function(value) {
   return value === 2;
}); // "b"
_.omit(keys, function(value) {
   return value === 2;
}); // {a: 1, c: 1}
我想通过比较立即创建回调。像这样的

function equals(lhs) {
    return function(rhs) {
        return lhs === rhs;
    };
}
lodash或下划线是否具有此函数的等效项?我曾尝试通过
\uu0.matches(2)
进行回调,但它进行了深入比较,无法处理基元类型


当然,我可以自己创建它,但我正在寻找一种以普通方式创建它的方法。

不确定我是否完全理解您的问题,但以下是我对您的目标的最佳猜测。


这里,
equals()
将返回一个回调函数。它用于确保只传递一个参数。它用于将
val
参数应用于。然后将其与集合中的每个值进行比较。

您希望
键有什么输出?
?更新的代码示例。现在这里是预期结果的评论,我仍然不清楚你想做什么。您正在尝试替换调用
.findKey
.omit
并使用其他内容吗?我想为
.findKey
.omit
和其他调用生成回调,它将传递的值与一些constantI值进行比较。我不知道您将如何执行此操作,但我非常确定您可以使用最新版本的下划线和u.mapObject函数来迭代对象并获得所需的结果。太棒了!看起来这是通过lodash实现的最好方法。但这会对性能产生重大影响。所以我想用一个函数就可以实现的方法来扩展lodash
function equals(val) {
    return _.ary(_.partial(_.isEqual, val), 1);
}

_.findKey(keys, equals(2));
// → 'b'

_.omit(keys, equals(2));
// { a: 1, c:1 }