成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

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

dmlllll / 1647人閱讀

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

有如下多層嵌套的對象:

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)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/110247.html

相關(guān)文章

  • 封裝

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

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

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

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

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

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

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

    call_me_R 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<