如何根据对象的值忽略对象中的密钥对?

时间:2014-04-22 20:53:51

标签: javascript lodash

我正在使用lodash.js并尝试根据而不是键名从下面的对象中删除密钥对 - 注意,我不能使用密钥名称:

var filters = {
   "filter1": "height",
   "filter2": "length",
   "filter3": "width"
}

这将按名称删除密钥对

_.omit(filters, 'filter1');

有人知道如何根据价值删除它吗?干杯

3 个答案:

答案 0 :(得分:3)

您可以使用_.omit进行回调:

_.omit(filters, function (value) {
    return value === 'width';
})

答案 1 :(得分:2)

omit方法接受回调,因此您可以使用此方法:

_.omit(filters, function(v){return v == "height";});

Demonstration

答案 2 :(得分:2)

According to the docs omit它可以采用一个回调参数,该函数为每个应该省略的对返回true。在那个功能中,你可以做任何你喜欢的疯狂逻辑。

_.omit(filters, function(value, key, object) {
  return value === 'width'; // omit width
});