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

问题描述 投票:0回答:4

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

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

这将按名称删除密钥对

_.omit(filters, 'filter1');

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

javascript lodash
4个回答
3
投票

您可以将

_.omit
与回调一起使用:

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

2
投票

omit
方法接受回调,所以你可以使用这个:

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

示范


2
投票

根据文档

omit
它可以接受一个回调参数,该参数是一个为每对应该省略的函数返回 true 的函数。在这个函数中你可以做任何你喜欢的疯狂逻辑。

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

0
投票

更新:

使用

omitBy
接受每个要处理的值的函数回调。

_.omitBy(filters, function (value) {
    return value === 'width';
})
© www.soinside.com 2019 - 2024. All rights reserved.