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?
JavaScript
x
11
11
1
const d = {
2
A: () => { return 'A' },
3
B: () => { return 'B' },
4
C: () => { return 'C' },
5
}
6
7
const key = 'Z'
8
9
const func = d[key] // HERE
10
11
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
JavaScript
1
28
28
1
const d = {
2
A: () => { return 'A' },
3
B: () => { return 'B' },
4
C: () => { return 'C' },
5
}
6
7
let key = 'A'
8
9
let func = d[key] || null;
10
console.log(func && func())
11
12
key = 'Z'
13
14
func = d[key] || null
15
console.log(func && func())
16
17
func = d[key] || function() { return null };
18
console.log(func && func())
19
20
func = d?.[key] ?? (() => null); // arrow has to be wrapped
21
console.log(func())
22
23
// undefined key
24
let key1;
25
console.log({key1})
26
27
func = d?.[key1] ?? (() => null); // arrow has to be wrapped
28
console.log("Using undefined key1:",func())