摘要:有如下多層嵌套的對象方法或方法方法方法方法如果有更好的方式,歡迎補充
有如下多層嵌套的對象:
var obj = { l1: { l2: { l3: "Hello World" } } }
?
方法1:var r = (((obj || {}).l1 || {}).l2 || {}).l3;
或
var r = obj.l1 && obj.l1.l2 && obj.l1.l2.l3
?
方法2:let delve = (obj, key) => (key.split(".").map(p => (obj = obj && obj[p])), obj); console.log(delve(obj, "l1.l2.l3")); // Hello World
?
方法3:function checkNested(obj, key, ...rest) { if (obj === undefined || obj === null) return false; if (rest.length == 0 && obj.hasOwnProperty(key)) return true; return checkNested(obj[key], ...rest); } console.log(checkNested(obj, "l1", "l2", "l3")); // true
?
方法4:function validChain(obj, ...keys) { return keys.reduce((obj, key) => (obj || {})[key], obj) !== undefined } console.log(validChain(obj, "l1", "l2", "l3")); // true
?
方法5:function objHasKeys(obj, keys) { var next = keys.shift(); return obj[next] && (! keys.length || objHasKeys(obj[next], keys)); }
如果有更好的方式,歡迎補充
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/110247.html
摘要:根據標準,到目前為止,一共有種緩存機制,有些是之前已有,有些是才新加入的。首次請求緩存有效期內請求緩存過期后請求一般瀏覽器會將緩存記錄及緩存文件存在本地文件夾中。 騰訊 Bugly 特約作者:賀輝超 1. H5 緩存機制介紹 H5,即 HTML5,是新一代的 HTML 標準,加入很多新的特性。離線存儲(也可稱為緩存機制)是其中一個非常重要的特性。H5 引入的離線存儲,這意味著 web ...
摘要:如果形參有設置默認值,第二個就被建立,他針對的是函數體內的聲明我們可以形象的理解為這是一個除了函數作用域和塊級作用域之外的第三作用域。 開門見山,我們來看看下面這個有趣的例子 showImg(http://ogitl0zvo.bkt.clouddn.com/public/16-11-12/77445738.jpg); ?對于上面這種用var的聲明方式,無論x的默認值為什么,只要形參中出...
摘要:在瀏覽區中的性能,可以認為是開發者所面臨的最嚴重的可用性問題。優化這個問題的第一步從它的加載和執行開始。這意味著在對象的事件觸發后再下載腳本。屬性指明本元素所含的腳本不會修改,因此代碼能夠安全地執行,但是瀏覽器的支持情況不理想。 JavaScript在瀏覽區中的性能,可以認為是開發者所面臨的最嚴重的可用性問題。 優化這個問題的第一步從它的加載和執行開始。 霸道的script標簽scr...
閱讀 1765·2021-09-22 15:10
閱讀 1261·2021-09-07 09:58
閱讀 2333·2019-08-30 15:44
閱讀 1635·2019-08-26 18:29
閱讀 2033·2019-08-26 13:35
閱讀 759·2019-08-26 13:31
閱讀 720·2019-08-26 11:42
閱讀 1065·2019-08-23 18:39