如果匹配,我试图只返回键值。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 回答
![?](http://img1.sycdn.imooc.com/533e4d660001312002000200-100-100.jpg)
白衣染霜花
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是。
![?](http://img1.sycdn.imooc.com/54584c9c0001489602200220-100-100.jpg)
慕的地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
添加回答
举报
0/150
提交
取消