Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

เข้าถึง Deeply Nested Values ใน JavaScript อย่างปลอดภัย

ใช้ lodash get method เข้าถึง properties ทุกระดับอย่างปลอดภัย First-level properties เข้าถึงง่าย Nested property access ยาก ควรใช้ library เช่น lodash

เข้าถึง deeply nested object:

ตัวอย่าง

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));       }    } };

ใช้โดยส่ง array เข้าถึง props

ตัวอย่าง

var obj = {    level1:{       level2:{          level3:{             name: "Foo"          }       },       anotherLevel2: "bar"    } }; console.log(getProp(obj, ["level1", "level2"]));

ผลลัพธ์

{level3: {name: "Foo"}}