javascript - 按值过滤对象数据
问题描述
给定以下数据
{ player1: 'healthy',
player4: 'ready',
player2: 'uncertain',
player3: 'uncertain'
}
我想知道lodash中是否有一种方法可以按对象的值过滤对象。例如,我想获得一个列表/数组,其中只有状态不确定的玩家,我想要另一个列表,其中包含所有状态不确定的玩家。
可能的解决方案
我认为这是可行的,但不确定它是否正确或正确的方法。
const result = _.pickBy(data, (key, value) => value.startsWith("uncert"));
解决方案
使用获取数组键_.keys()
,然后通过检查对象的原始值是否为(或以 /includes/etc... 开头)来获取/_.partition()
的数组:uncertain
certain
uncertain
const data = {player1: 'healthy',player4: 'ready',player2: 'uncertain',player3: 'uncertain'}
const value = 'uncertain'
const [uncertain, certain] = _.partition(_.keys(data), key => data[key] === value)
console.log(uncertain)
console.log(certain)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.js"></script>
推荐阅读
- discord.py - 嵌入的 Discord.py 反应角色不起作用
- python - 从 jinja 的字典中获取列表
- javascript - 这个带有可变引用参数的 JavaScript 函数是纯函数吗?
- javascript - ReferenceError:变量未在 if 语句后定义
- postgresql - Postgres CHAR 检查约束未正确评估
- pytorch - 如何在 Pytorch 的神经网络中实现一个时代相关参数?
- python - 我用 Python 做了一个语音助手。当我在同一个句子中使用两个不同的语音命令时,如何只执行一个?
- function - (->) 的 Profunctor 实例定义 dimap 和 lmap/rmap 有什么原因吗?
- python - 检查是否可以使用 Spotipy 播放歌曲
- swift - UILabel 值不会根据 pickerView 选择而改变