使用 JavaScript 測試 JavaScript 巢狀物件鍵是否存在


假設我們引用了一個物件 -

let test = {};

這個物件很有可能擁有(但並不直接擁有)巢狀物件,如下 -

test = {level1: {level2: {level3: "level3"}}};

我們要求編寫一個 JavaScript 函式,把這種物件作為第一個引數,然後把任意數量的鍵字串作為後面的引數。

該函式應該確定,以鍵字串描述的巢狀組合在物件中是否存在。

示例

程式碼如下 -

const checkNested = function(obj = {}){
   const args = Array.prototype.slice.call(arguments, 1);
   for (let i = 0; i < args.length; i++) {
      if (!obj || !obj.hasOwnProperty(args[i])) {
         return false;
      }
      obj = obj[args[i]];
   };
   return true;
}
let test = {
   level1:{
      level2:{
         level3:'level3'
      }
   }
};
console.log(checkNested(test, 'level1', 'level2', 'level3'));
console.log(checkNested(test, 'level1', 'level2', 'foo'));

輸出

在控制檯中的輸出如下 -

true
false

更新日期:24-Nov-2020

825 瀏覽次數

開啟你的事業

完成課程獲得認證

開始
廣告