在 JavaScript 中测试嵌套 JavaScript 对象 key 是否存在

javascriptweb developmentfront end technologyobject oriented programming更新于 2024/1/9 16:12:17

假设,我们有一个对对象 − 的引用

let test = {};

此对象可能(但不会立即)具有嵌套对象,例如 −

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

我们需要编写一个 JavaScript 函数,该函数将一个这样的对象作为第一个参数,然后将任意数量的 key 字符串作为后续参数。

该函数应确定 key 字符串所描述的嵌套组合是否存在于对象中。

示例

其代码为 −

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

相关文章


有用资源