![](/img/trans.png)
[英]Is it possible to use pipe (||) to set default parameters inside JavaScript object value
[英]Set a default value for a nested object property using the pipe symbol
對於給定的哈希:
var hash = {
a: "one",
b: { cat: "two" }
};
使用兩個管道||
如果未定義,則允許放置替代值:
var number = hash.a || "just a number"; // -> "one"
var number = hash.c || "just a number"; // -> "just a number"
但是,將嵌套哈希作為目標將導致錯誤: Cannot read property 'value' of undefined
:
var number = hash.c.dog || "just a number"; // -> Cannot read property 'value' of undefined
我的問題是如何像處理“普通”哈希那樣定位嵌套的哈希並設置默認值?
JavaScript沒有為此提供特殊語法。 您需要先測試每個可能未定義的值,然后再假設其已定義並嘗試訪問其成員之一。
您仍然可以使用||
或&&
為此,但在不平凡的情況下,最好使用if
。
使用||
:
var hash = {
a: "one",
b: { cat: "two" }
};
var x = (hash.c || {}).cat
使用&&
:
var x = hash && hash.c && hash.c.cat
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.