亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

JS中檢查內(nèi)嵌對(duì)象是否存在

dmlllll / 1711人閱讀

摘要:有如下多層嵌套的對(duì)象方法或方法方法方法方法如果有更好的方式,歡迎補(bǔ)充

有如下多層嵌套的對(duì)象:

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));
}

如果有更好的方式,歡迎補(bǔ)充

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/110247.html

相關(guān)文章

  • 封裝

    摘要:上一篇文章距離有出不多一個(gè)多月了現(xiàn)在好不容易有了好心情繼續(xù)看書(shū)寫(xiě)點(diǎn)感悟第三章講述的是封裝像可以通過(guò)關(guān)鍵字來(lái)聲明一個(gè)方法使得只有該對(duì)象內(nèi)部的代碼才能執(zhí)行它在中沒(méi)有這樣的關(guān)鍵字但是可以使用閉包來(lái)創(chuàng)建只允許從對(duì)象內(nèi)部訪(fǎng)問(wèn)的方法和屬性相比于閉包走了 上一篇文章距離有出不多一個(gè)多月了,現(xiàn)在好不容易有了好心情,繼續(xù)看書(shū),寫(xiě)點(diǎn)感悟. 第三章講述的是js封裝,像java,可以通過(guò)private關(guān)鍵字來(lái)...

    Ethan815 評(píng)論0 收藏0
  • H5 緩存機(jī)制淺析 - 移動(dòng)端 Web 加載性能優(yōu)化

    摘要:根據(jù)標(biāo)準(zhǔn),到目前為止,一共有種緩存機(jī)制,有些是之前已有,有些是才新加入的。首次請(qǐng)求緩存有效期內(nèi)請(qǐng)求緩存過(guò)期后請(qǐng)求一般瀏覽器會(huì)將緩存記錄及緩存文件存在本地文件夾中。 騰訊 Bugly 特約作者:賀輝超 1. H5 緩存機(jī)制介紹 H5,即 HTML5,是新一代的 HTML 標(biāo)準(zhǔn),加入很多新的特性。離線(xiàn)存儲(chǔ)(也可稱(chēng)為緩存機(jī)制)是其中一個(gè)非常重要的特性。H5 引入的離線(xiàn)存儲(chǔ),這意味著 web ...

    alin 評(píng)論0 收藏0
  • 參數(shù)默認(rèn)值引起的第三作用域

    摘要:如果形參有設(shè)置默認(rèn)值,第二個(gè)就被建立,他針對(duì)的是函數(shù)體內(nèi)的聲明我們可以形象的理解為這是一個(gè)除了函數(shù)作用域和塊級(jí)作用域之外的第三作用域。 開(kāi)門(mén)見(jiàn)山,我們來(lái)看看下面這個(gè)有趣的例子 showImg(http://ogitl0zvo.bkt.clouddn.com/public/16-11-12/77445738.jpg); ?對(duì)于上面這種用var的聲明方式,無(wú)論x的默認(rèn)值為什么,只要形參中出...

    Fourierr 評(píng)論0 收藏0
  • JavaScript性能優(yōu)化之加載與執(zhí)行

    摘要:在瀏覽區(qū)中的性能,可以認(rèn)為是開(kāi)發(fā)者所面臨的最嚴(yán)重的可用性問(wèn)題。優(yōu)化這個(gè)問(wèn)題的第一步從它的加載和執(zhí)行開(kāi)始。這意味著在對(duì)象的事件觸發(fā)后再下載腳本。屬性指明本元素所含的腳本不會(huì)修改,因此代碼能夠安全地執(zhí)行,但是瀏覽器的支持情況不理想。 JavaScript在瀏覽區(qū)中的性能,可以認(rèn)為是開(kāi)發(fā)者所面臨的最嚴(yán)重的可用性問(wèn)題。 優(yōu)化這個(gè)問(wèn)題的第一步從它的加載和執(zhí)行開(kāi)始。 霸道的script標(biāo)簽scr...

    call_me_R 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<