জেনারেটর ফাংশন ব্যবহার করে নীলদের উত্তরObject.entries
এবং / অথবা বার্গির উত্তর দেখুন । যদিও Object.entries
প্রশ্নটি জিজ্ঞাসা করার সময় এখনও তা অনুমানের মধ্যে ছিল না, এটি পঞ্চম পর্যায়ে ছিল , পলিফিল এতটাই নিরাপদ এবং এপ্রিল ২০১ 2016 এও ব্যবহার করা ঠিক (ঠিক)। (পর্যায়ে আরো এখানে ।) এবং জেনারেটরের ফাংশন ES2015 ছিলেন। ওপি বিশেষত মধ্যস্থতাকারীদের এড়াতে বলেছে, এবং জেনারেটর এটি পুরোপুরি এড়াতে পারে না, তবে এটি নীচের বা (কিছুটা) চেয়ে ভাল কাজ করে Object.enties
।
FWIW, ব্যবহার করে Object.entries
:
[name, value]
পাস করতে অ্যারের একটি অ্যারে তৈরি করেnew Map
Map
কন্সট্রাকটর অ্যারের কোনো ইটারেটরে পেতে উপর একটি ফাংশন কল; অ্যারে তৈরি করে এবং একটি অ্যারে ইন্টারেক্টর অবজেক্ট প্রদান করে।
Map
কন্সট্রাকটর যে ব্যবহারগুলি পুনরুক্তিকারীর বস্তুর এন্ট্রি (পেতে [name, value]
অ্যারে) এবং মানচিত্র তৈরী
জেনারেটর ব্যবহার:
- জেনারেটর ফাংশন কল করার ফলে একটি জেনারেটর বস্তু তৈরি করে
Map
কন্সট্রাকটর তা থেকে কোনো ইটারেটরে পেতে যে জেনারেটরের বস্তুর উপর একটি ফাংশন কল; জেনারেটর অবজেক্ট নিজেই ফিরে আসে
Map
কন্সট্রাকটর (একটি পুনরুক্তিকারীর হিসাবে) জেনারেটরের বস্তুর এন্ট্রি (পেতে ব্যবহার [name, value]
অ্যারে) এবং মানচিত্র তৈরী
সুতরাং: একজন কম মধ্যস্থতাকারী (এর থেকে অ্যারে Object.entries
)।
তবে, ব্যবহার Object.entries
করা সহজ এবং সেই অ্যারে তৈরি করা সময়টির 99.999% নয় isn't সুতরাং সত্যিই, হয় এক। তবে তারা উভয় নীচের চেয়ে ভাল। :-)
আসল উত্তর:
এটিকে আরম্ভ করার জন্য Map
, আপনি যে কোনও পুনরাবৃত্তকারী ব্যবহার করতে পারেন যা কী / মান জোড়গুলিকে অ্যারে হিসাবে ফিরিয়ে দেয়, যেমন অ্যারের অ্যারে:
const map = new Map([
['foo', 'bar']
]);
বস্তু থেকে মানচিত্রে কোনও অন্তর্নির্মিত রূপান্তর নেই, তবে এটি সহজেই এর সাথে সম্পন্ন হয় Object.keys
:
const map = new Map();
let obj = {foo: 'bar'};
Object.keys(obj).forEach(key => {
map.set(key, obj[key]);
});
আপনি অবশ্যই এটি হ্যান্ডেল করার জন্য নিজেকে একটি কর্মী ফাংশন দিতে পারেন:
function buildMap(obj) {
let map = new Map();
Object.keys(obj).forEach(key => {
map.set(key, obj[key]);
});
return map;
}
তারপর
const map = buildMap({foo: 'bar'});
বা এখানে আরও l33t-look (এটি কি এখনও একটি জিনিস?) সংস্করণ রয়েছে:
function buildMap(obj) {
return Object.keys(obj).reduce((map, key) => map.set(key, obj[key]), new Map());
}
(হ্যাঁ, Map#set
মানচিত্র রেফারেন্স উপস্থাপিত করে। অনেকেই হয়তো বলবেন এই একটি হল abusage এর reduce
।)
বা আমরা অস্পষ্টতার উপরে সত্যই উপরে যেতে পারি :
const buildMap = o => Object.keys(o).reduce((m, k) => m.set(k, o[k]), new Map());
না, আমি কখনই বাস্তবের জন্য এটি করব না। :-)
Object.entries
সত্যিই এটি সর্বোত্তম পদ্ধতির উপর নির্ভর করেObject.keys
এবং বার্গির জেনারেটরের ফাংশন পদ্ধতির হয়Object.keys
বা এর চেয়ে কিছুটা বেশি সরাসরিObject.entries
।