簡體   English   中英

Object.entities 過濾器

[英]Object.entities filter

const mykeys = {
  'foo' : 'bar',
  'tez' : 'test',
  'baz' : 'test2'
}

function test(passedValue) {
   //This Arrow function needs to return something else lint complains hence the undefined. Cannot use ForOf lint complains
   Object.entries(mykeys).forEach(([key, val]) => {
   if (key === passedValue) {
     return val
   }
  // return undefined
  })
}

是否有一種優雅的方式來返回鍵匹配傳遞值的值。 因此,如果傳遞的值是 foo,它匹配鍵 foo 並返回 bar。 我認為 object.entities 非常適合使用,因為它兼具關鍵和價值。

當我使用 for of 語句時 Lint 抱怨並且我返回 undefined 的位置不起作用,因為它退出了條件,但我已經對此進行了注釋,並在下面得到關於在箭頭 function 中返回值的 lint 錯誤。

不允許使用 'forofstatement' 的 eslint 無限制語法

期望在箭頭 function 一致返回的末尾返回一個值

無法發表評論,因為我還沒有足夠的代表,但是您是否有理由需要遍歷 object 鍵以找到鍵值對? 在我看來,立即查找如下值會更容易:

function getValue(key){
   return mykeys[key];
}

這就是你想要的。 另一個答案幾乎就在那里,但檢查的是值而不是鍵。 測試 function 返回鍵匹配的值,否則返回未定義的值

 const mykeys = { 'foo': 'bar', 'tez': 'test', 'baz': 'test2' } const test = passedValue => (Object.entries(mykeys).find(entry => entry[0] === passedValue) || [])[1]; console.log('test', test('foo')) console.log('test', test('tez')) console.log('test', test('baz')) console.log('test', test('bab'))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM