猿问

从 Object.entries 中提取值

如果匹配,我试图只返回键值。


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"]

我只需要返回键值。我如何提取键值或者是否有更简单的方法来在匹配时返回键。


三国纷争
浏览 164回答 2
2回答

白衣染霜花

如果你只想要钥匙,你应该.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是。

慕的地8271018

这就是我会做的:Object.values(codes).some((item, i) => {  const match = item.contains('dog')  if (match) {    console.log(Object.keys(codes)[i])  }  return match})一旦找到,这将停止循环。性能最强。这将打印到控制台 key2
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答