Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按值筛选对象数据_Javascript_Lodash - Fatal编程技术网

Javascript 按值筛选对象数据

Javascript 按值筛选对象数据,javascript,lodash,Javascript,Lodash,鉴于以下数据 { player1: 'healthy', player4: 'ready', player2: 'uncertain', player3: 'uncertain' } 我想知道在lodash中是否有方法根据对象的值过滤对象。例如,我希望得到一个列表/数组,其中只包含状态不确定的玩家,我希望另一个列表包含所有状态不确定的玩家 可能的解决办法 我认为这是可行的,但不确定这是正确的还是正确的方法 const result = _.pickBy(data, (key, v

鉴于以下数据

{ player1: 'healthy',
  player4: 'ready',
  player2: 'uncertain',
  player3: 'uncertain' 
}
我想知道在lodash中是否有方法根据对象的值过滤对象。例如,我希望得到一个列表/数组,其中只包含状态不确定的玩家,我希望另一个列表包含所有状态不确定的玩家

可能的解决办法

我认为这是可行的,但不确定这是正确的还是正确的方法

const result = _.pickBy(data, (key, value) => value.startsWith("uncert"));

我不确定我是否理解得很好,但应该没有lodash:

const数据={
玩家1:“健康”,
玩家4:准备好了吗,
玩家2:“不确定”,
玩家3:“不确定”
}
常量前缀='uncert'
const result=Object.keys(数据).reduce(
(列表,播放器)=>(列表[!编号(数据[player]。包括(前缀))%2]。推送(播放器),列表),
[[], []]
)
console.log('带'+前缀的玩家,结果[0])

console.log('players without'+前缀,result[1])
我不确定自己是否理解得很好,但应该没有lodash:

const数据={
玩家1:“健康”,
玩家4:准备好了吗,
玩家2:“不确定”,
玩家3:“不确定”
}
常量前缀='uncert'
const result=Object.keys(数据).reduce(
(列表,播放器)=>(列表[!编号(数据[player]。包括(前缀))%2]。推送(播放器),列表),
[[], []]
)
console.log('带'+前缀的玩家,结果[0])

console.log('players without'+prefix,result[1])
使用
.keys()
获取一个数组键,然后使用
.partition()
通过检查对象的原始值是否
不确定
(或以/includes/etc开头),获取
不确定
/
的数组:

const data={player1:'健康',player4:'准备就绪',player2:'不确定',player3:'不确定'}
常量值='不确定'
常量[不确定,确定]=[分区([键(数据),键=>数据[键]==值)
控制台日志(不确定)
console.log(某些)

使用
.keys()
获取数组keys,然后使用
.partition()
通过检查对象的原始值是否
不确定(或以/includes/etc…开头),获取
不确定的
/
确定的
数组:

const data={player1:'健康',player4:'准备就绪',player2:'不确定',player3:'不确定'}
常量值='不确定'
常量[不确定,确定]=[分区([键(数据),键=>数据[键]==值)
控制台日志(不确定)
console.log(某些)

试试这样的方法:

const data  = { 
  player1: 'healthy',
  player4: 'ready',
  player2: 'uncertain',
  player3: 'uncertain' 
}

result = _.pickBy(data, (value) => _.startsWith(value, "uncert"));

试着这样做:

const data  = { 
  player1: 'healthy',
  player4: 'ready',
  player2: 'uncertain',
  player3: 'uncertain' 
}

result = _.pickBy(data, (value) => _.startsWith(value, "uncert"));

你为什么必须使用lodash而不是JS的本机过滤函数?NicholasSiegmundt使用的代码库主要是lodash,因此试图保持一致的_u2;.filter(数据,{name:'ungulate'})@AmirAfghani似乎不起作用。你忘了使用u.startsWith(value,“uncert”),看看我的答案,我希望它能帮助你。你为什么必须使用lodash而不是JS的本机过滤函数?NicholasSiegmundt在一个主要是lodash的代码库中工作,因此试图保持一致的z.filter(数据,{name:'uncert'})@AmirAfghani似乎不起作用你忘了使用u.startsWith(value,“uncert”),看看我的答案,我希望它能帮助你。这是有效的,现在我如何获得所有不确定的值。我可以使用u.difference吗?我不知道我是否理解了what do you whant,但是你可以拒绝这样的表达式:result=.pickBy(data,(value)=>!.startsWith(value,“uncert”);这是可行的,现在我如何获得所有不确定值的lit。我可以使用u.difference吗?我不知道我是否理解了what do you whant,但是你可以拒绝这样的表达式:result=.pickBy(data,(value)=>!.startsWith(value,“uncert”);我发布了另一个你可以帮助的问题我发布了另一个你可以帮助的问题