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

ตั้งค่า Object Properties แบบปลอดภัยด้วย Dot Notation Strings ใน JavaScript

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

ตั้งค่า deeply nested object:

ตัวอย่าง

let _ = require("lodash"); let obj = {    a: {       b: {          foo: "test"       },       c: 2    } }; _.set(obj, "a.b.foo", "test1"); _.set(obj, "a.c", { test2: "bar" }); console.log(obj);

ผลลัพธ์

{ a: { b: { foo: 'test1' }, c: { test2: 'bar' } } }

เขียน setUpdateProp เองได้:

const setUpdateProp = (object, path, value) => {    if (path.length === 1) object[path[0]] = value;       else if (path.length === 0) throw error;    else {       if (object[path[0]])          return setUpdateProp(object[path[0]], path.slice(1), value);       else {          object[path[0]] = {};          return setUpdateProp(object[path[0]], path.slice(1), value);       }    } };

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

ตัวอย่าง

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

ผลลัพธ์

{ level1: { level2: 'FooBar', anotherLevel2: 'bar' } }