iT邦幫忙

2021 iThome 鐵人賽

DAY 22
1
Modern Web

JavaScript 從 50% 開始,打造函式庫不是問題!系列 第 22

JS 22 - 探險時間!深入查詢物件的所有子屬性!

  • 分享至 

  • xImage
  •  

大家好!

如果要深入查詢一個多層物件,一般都是用 Object.keys 等方法,今天就是要簡化這樣麻煩的步驟。
我們進入今天的主題吧!


程式碼

Felix.delve = function (obj, key) {
    return key in obj
        ? obj[key]
        : Object.keys(obj).reduce(function (a, v) {
            return a === undefined && typeof obj[v] === 'object'
                ? Felix.delve(obj[v], key)
                : a;
    }, undefined);
};

實測

/* 沿用昨天的 json 物件 */
Felix.delve(json, 'JS 21');
// { post: '資料太多看得心很累?用 9 行程式碼將資料轉換為表格吧!', date: '2021-10-06' }

這樣我們就不用逐一用 Object.keys 或其他方法查詢了!


差不多也到尾聲了,接下來我們要介紹的是函式庫的靜態方法。
如果對文章有任何疑問,也歡迎在下方提問和建議!
我是 Felix,我們明天再見!


上一篇
JS 21 - 資料太多看得心很累?用 9 行程式碼將資料轉換為表格吧!
下一篇
JS 23 - 非同步執行,也是要依序排隊!
系列文
JavaScript 從 50% 開始,打造函式庫不是問題!46
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言