使用字符串键访问嵌套的JavaScript对象

您可以使用lodash的get方法安全地获取任何级别的属性。获取一级属性非常简单。嵌套属性访问非常棘手,您应该使用经过测试的库(例如lodash)。

您可以通过以下方式访问深度嵌套的对象-

示例

let _ = require("lodash");

let obj = {

   a: {

      b: {

         foo: "test"

      },

      c: 2

   }

};

console.log(_.get(obj, "a.b.foo"));

console.log(_.get(obj, "a.c"));

console.log(_.get(obj, "a.test"));

console.log(_.get(obj, "a.test.x"));

输出结果

这将给出输出-

test

2

undefined

undefined

您还可以通过以下方式编写自己的getProp函数-

const getProp = (object, path) => {

   if (path.length === 1) return object[path[0]];

      else if (path.length === 0) throw error;

   else {

      if (object[path[0]]) return getProp(object[path[0]], path.slice(1));

      else {

         object[path[0]] = {};

         return getProp(object[path[0]], path.slice(1));

      }

   }

};

您可以通过传递数组来访问道具来使用它。

示例

var obj = {

   level1:{

      level2:{

         level3:{

            name: "Foo"

         }

      },

      anotherLevel2: "bar"

   }

};

console.log(getProp(obj, ["level1", "level2"]));

输出结果

这将给出输出-

{level3: {name: "Foo"}}

以上是 使用字符串键访问嵌套的JavaScript对象 的全部内容, 来源链接: utcz.com/z/345484.html

回到顶部