为了账号安全,请及时绑定邮箱和手机立即绑定

从 Object.entries 中提取值

从 Object.entries 中提取值

三国纷争 2021-12-02 19:26:59
如果匹配,我试图只返回键值。const codes = {  key1: 'dafault',  key2: 'dog112',  key3: 'catStick',};const match = 'dog'const result = Object.entries(codes).filter(([, v]) => {    console.log('v = ', v);    return v.includes(match);});console.log('result = ', result);// Array(2) ["key2", "dog112"]我只需要返回键值。我如何提取键值或者是否有更简单的方法来在匹配时返回键。
查看完整描述

2 回答

?
白衣染霜花

TA贡献1796条经验 获得超10个赞

如果你只想要钥匙,你应该.find超过Object.keys:


const codes = {

  key1: 'dafault',

  key2: 'dog112',

  key3: 'catStick',

};


const match = 'dog'


const result = Object.keys(codes).find(

  key => codes[key].includes(match)

);


console.log('result = ', result);


如果什么都没有找到,result将会undefined是。


查看完整回答
反对 回复 2021-12-02
?
慕的地8271018

TA贡献1796条经验 获得超4个赞

这就是我会做的:


Object.values(codes).some((item, i) => {

  const match = item.contains('dog')

  if (match) {

    console.log(Object.keys(codes)[i])

  }

  return match

})

一旦找到,这将停止循环。性能最强。


这将打印到控制台 key2


查看完整回答
反对 回复 2021-12-02
  • 2 回答
  • 0 关注
  • 150 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信