var dict = []; // create an empty array
dict.push({
key: "keyName",
value: "the value"
});
// repeat this last part as needed to add more key/value pairs
মূলত, আপনি 2 টি বৈশিষ্ট্য (ডাকা key
এবং value
) সহ একটি বস্তু আক্ষরিক তৈরি করছেন push()
এবং অ্যারেতে এটি (ব্যবহার করে ) সন্নিবেশ করছেন ।
সম্পাদনা: সুতরাং প্রায় 5 বছর পরে, এই উত্তরটি নিম্নমানের হয়ে উঠছে কারণ এটি কোনও "জেনারেল" জেএস বস্তুটি আক্ষরিক (ওরফে মানচিত্র, ওরফে হ্যাশ, ওরফে অভিধান) তৈরি করছে না।
এটা তোলে হয় তবে কাঠামো তৈরি যে ওপি চাইলেন (এবং যা সঙ্গে লিঙ্ক করা অন্যান্য প্রশ্নে দেখানো হয়), যা বস্তুর লিটারেল একটি অ্যারের , প্রতিটি সঙ্গে key
এবং value
বৈশিষ্ট্য। কেন কাঠামোর প্রয়োজনীয়তা আমাকে জিজ্ঞাসা করবেন না, তবে এটিই যার জন্য জিজ্ঞাসা করা হয়েছিল।
তবে, তবে আপনি যদি সরল জেএস বস্তুতে যা চান - এবং কাঠামোটি ওপি চেয়েছিল না - টিসিএল এর উত্তর দেখুন , যদিও আপনার কাছে কেবল কার্যকর কী আছে যা জেএসের নামগুলি সহ সাধারণ কীগুলি রয়েছে though আপনি কেবল এটি করতে পারেন:
// object literal with properties
var dict = {
key1: "value1",
key2: "value2"
// etc.
};
অথবা কোনও বস্তু তৈরির পরে বৈশিষ্ট্যগুলি নির্ধারণ করতে নিয়মিত ডট-নোটেশন ব্যবহার করুন:
// empty object literal with properties added afterward
var dict = {};
dict.key1 = "value1";
dict.key2 = "value2";
// etc.
আপনি কি বন্ধনী স্বরলিপি চান তাহলে আপনি কী যে মত তাদের মধ্যে স্পেস, বিশেষ অক্ষর, বা জিনিষ আছে পেয়েছেন। উদাহরণ:
var dict = {};
// this obviously won't work
dict.some invalid key (for multiple reasons) = "value1";
// but this will
dict["some invalid key (for multiple reasons)"] = "value1";
আপনার কীগুলি গতিশীল হলে আপনি বন্ধনী স্বরলিপিও চান:
dict[firstName + " " + lastName] = "some value";
নোট করুন যে কীগুলি (সম্পত্তির নাম) সর্বদা স্ট্রিং থাকে এবং নন-স্ট্রিং মানগুলি কী হিসাবে ব্যবহৃত হলে একটি স্ট্রিংয়ে জোর করা হয়। যেমন কোনও Date
বস্তু তার স্ট্রিং প্রতিনিধিত্বতে রূপান্তরিত হয়:
dict[new Date] = "today's value";
console.log(dict);
// => {
// "Sat Nov 04 2016 16:15:31 GMT-0700 (PDT)": "today's value"
// }
তবে নোট করুন যে এটি অগত্যা "কেবলমাত্র কাজ করে না", কারণ অনেকগুলি অবজেক্টের স্ট্রিং প্রতিনিধিত্ব থাকবে "[object Object]"
যা কোনও অ-অনন্য কী ব্যবহার করে না। সুতরাং যেমন কিছু থেকে সাবধান থাকুন:
var objA = { a: 23 },
objB = { b: 42 };
dict[objA] = "value for objA";
dict[objB] = "value for objB";
console.log(dict);
// => { "[object Object]": "value for objB" }
সত্ত্বেও objA
এবং objB
হচ্ছে সম্পূর্ণ ভিন্ন এবং অনন্য উপাদান, তারা উভয় একই মূল স্ট্রিং উপস্থাপনা আছে: "[object Object]"
।
এর Date
মতো আচরণ না করার কারণটি হ'ল Date
প্রোটোটাইপের একটি কাস্টম toString
পদ্ধতি রয়েছে যা ডিফল্ট স্ট্রিং উপস্থাপনাকে ওভাররাইড করে। এবং আপনি একই করতে পারেন:
// a simple constructor with a toString prototypal method
function Foo() {
this.myRandomNumber = Math.random() * 1000 | 0;
}
Foo.prototype.toString = function () {
return "Foo instance #" + this.myRandomNumber;
};
dict[new Foo] = "some value";
console.log(dict);
// => {
// "Foo instance #712": "some value"
// }
(নোট করুন যেহেতু উপরেরগুলি এলোমেলো সংখ্যা ব্যবহার করে , নামের সংঘর্ষগুলি এখনও খুব সহজেই ঘটতে পারে It's এটি কেবলমাত্র একটি বাস্তবায়নের চিত্রিত করার জন্য toString
))
সুতরাং বস্তুগুলি কী হিসাবে ব্যবহার করার চেষ্টা করার সময়, জেএস বস্তুর নিজস্ব toString
বাস্তবায়ন, যদি থাকে তবে, বা ডিফল্ট স্ট্রিং প্রতিনিধিত্ব ব্যবহার করবে।