কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে ডট নোটেশন স্ট্রিং দিয়ে সেফলি অবজেক্ট প্রপার্টি সেট করা

লড্যাশ (Lodash) লাইব্রেরির set মেথড ব্যবহার করে যেকোনো লেভেলের প্রপার্টি সেফলি সেট করা যায়। ফার্স্ট-লেভেল প্রপার্টি সেট করা সহজ। নেস্টেড প্রপার্টি এক্সেস ট্রিকি, সেজন্য টেস্ট করা লাইব্রেরি যেমন লড্যাশ ব্যবহার করা উচিত।

Lodash set() উদাহরণ

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 new Error("Empty path");
  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);
    }
  }
};

ব্যবহার

var obj = {
  level1: {
    level2: { level3: { name: "Foo" } },
    anotherLevel2: "bar"
  }
};

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

আউটপুট

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

ব্যাখ্যা

_.set(obj, path, value) পাথ স্ট্রিং ("a.b.c") বা অ্যারে (["a","b","c"]) হিসেবে নেয়। পাথ existencia না থাকলে অটোমেটিক্যালি অবজেক্ট তৈরি করে (অটো-ভিভিফিকেশন)। কাস্টম ফাংশনটিও একই কাজ করে কিন্তু এরর হ্যান্ডলিং যোগ করা যেতে পারে।

  1. জাভাস্ক্রিপ্টে অবজেক্টে প্রপার্টি আছে কিনা চেক করা

  2. জাভাস্ক্রিপ্টে অবজেক্ট মেম্বার সেট করা

  3. JavaScript-এ ডট নোটেশন বনাম ব্র্যাকেট নোটেশন: পার্থক্য ও ব্যবহার

  4. জাভাস্ক্রিপ্টে ডট নোটেশন