我想在一個物件上查找一個鍵,但如果該鍵不存在,它必須回傳 null,在 JavaScript 中可以嗎?
const d = {
A: () => { return 'A' },
B: () => { return 'B' },
C: () => { return 'C' },
}
const key = 'Z'
const func = d[key] // HERE
console.log(func)
uj5u.com熱心網友回復:
您可以使用或: ||
或較新的可選鏈和空合并運算子
注意:Máté Wiszt 建議的箭頭函式必須被包裹,()否則會報錯
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())
uj5u.com熱心網友回復:
你可以做:
const func = d[key] || () => null;
在這種情況下,您可以安全地呼叫 func。
uj5u.com熱心網友回復:
最好使用hasOwnProperty檢查屬性是否存在于物件中d。
const d1 = {
A: () => { return "A"; },
B: () => { return "B"; },
C: () => { return "C"; },
Z: undefined,
};
const d2 = {
A: () => { return "A"; },
B: () => { return "B"; },
C: () => { return "C"; },
};
const key = "Z";
function getValue(obj, key) {
return obj.hasOwnProperty(key) ? obj[key] : null;
}
const func1 = getValue(d1, key);
console.log(func1);
const func2 = d1[key] || null; // Shouldn't use
console.log(func2);
const func3 = d1[key] ?? null; // Shouldn't use
console.log(func3);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/381596.html
標籤:javascript
