I want to lookup for a key on an object, but if the key does’t exist, it must return null, is it possible in JavaScript?
const d = { A: () => { return 'A' }, B: () => { return 'B' }, C: () => { return 'C' }, } const key = 'Z' const func = d[key] // HERE console.log(func)
Advertisement
Answer
You can use or: ||
or the newer optional chaining and Nullish coalescing operator
NOTE: the arrow function suggested by Máté Wiszt has to be wrapped in ()
or it will give an error
const d = { A: () => { return 'A' }, B: () => { return 'B' }, C: () => { return 'C' }, } let key = 'A' let func = d[key] || null; console.log(func && func()) key = 'Z' func = d[key] || null console.log(func && func()) func = d[key] || function() { return null }; console.log(func && func()) func = d?.[key] ?? (() => null); // arrow has to be wrapped console.log(func()) // undefined key let key1; console.log({key1}) func = d?.[key1] ?? (() => null); // arrow has to be wrapped console.log("Using undefined key1:",func())