[英]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.