Object.entries()
এমন অ্যারে প্রদান করে যার উপাদানগুলিতে [key, value]
সরাসরি পাওয়া যায় এমন অসংখ্য সংখ্যক জুটির সাথে মিল রেখে অ্যারে হয় object
। বৈশিষ্ট্যগুলির ক্রম হ'ল ম্যানুয়ালি বস্তুর সম্পত্তি মানগুলি লুপ করে দেওয়া।
- https://developer.mozilla.org/en-US/docs/Web/JavaScript/ উল্লেখ / গ্লোবাল_অবজেক্টস / অবজেক্ট / এন্ট্রিগুলি# বিবরণ
Object.entries
ফাংশন আয় প্রায় সঠিক আউটপুট তোমার জন্য বলছি, কি ব্যতীত সংখ্যার পরিবর্তে স্ট্রিং হয়।
const obj = {"1":5,"2":7,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0};
console.log(Object.entries(obj));
আপনার যদি সংখ্যাগুলি হওয়ার জন্য কীগুলির প্রয়োজন হয় তবে আপনি ফলাফলটি একটি নতুন অ্যারেতে কলব্যাক ফাংশন দিয়ে মানচিত্র করতে পারেন যা প্রতিটি জোড়ের চাবিটি এর থেকে জোর করে সংখ্যার সাথে প্রতিস্থাপন করে।
const obj = {"1":5,"2":7,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0};
const toNumericPairs = input => {
const entries = Object.entries(input);
return entries.map(entry => Object.assign(entry, { 0: +entry[0] }));
}
console.log(toNumericPairs(obj));
আমি Object.assign
উপরের উদাহরণে একটি তীর ফাংশন এবং মানচিত্র কলব্যাকের জন্য ব্যবহার করছি যাতে আমি এটিকে সঠিকভাবে কাজে লাগিয়ে একটি নির্দেশে রাখতে পারিObject.assign
অবজেক্টটি যে বরাদ্দ করা হয়েছে ফেরত দিয়ে এবং একটি একক নির্দেশ তীর ফাংশনের রিটার্ন মান নির্দেশের ফলাফল।
এটি সমান:
entry => {
entry[0] = +entry[0];
return entry;
}
মন্তব্যগুলিতে @ ট্র্যাভিস ক্লার্ক দ্বারা উল্লিখিত হিসাবে, মানচিত্রের ফাংশনটি ছোট করা যেতে পারে:
entry => [ +entry[0], entry[1] ]
যাইহোক, এটি বিদ্যমান কী অ্যারে জায়গায় পরিবর্তিত না করে প্রতিটি কী-মান জোড়ের জন্য একটি নতুন অ্যারে তৈরি করবে, সুতরাং কী-মান জোড়ার অ্যারে তৈরির পরিমাণ দ্বিগুণ করবে। মূল এন্ট্রি অ্যারে এখনও অ্যাক্সেসযোগ্য তবে এটি এবং এর এন্ট্রিগুলি আবর্জনা সংগ্রহ করা হবে না।
এখন, যদিও আমাদের ইন-প্লেস পদ্ধতিটি এখনও দু'টি অ্যারে ব্যবহার করে যা কী-মান জোড় (ইনপুট এবং আউটপুট অ্যারে) ধারণ করে, মোট অ্যারে কেবলমাত্র এক দ্বারা পরিবর্তিত হয়। ইনপুট এবং আউটপুট অ্যারেগুলি আসলে অ্যারেতে পূর্ণ হয় না, বরং অ্যারেগুলির জন্য উল্লেখগুলি এবং সেইগুলি উল্লেখগুলি স্মৃতিতে একটি নগন্য পরিমাণের জায়গা নেয়।
- প্রতিটি কী-মান জুটির স্থান-পরিবর্তন করে নেওয়ার পরিমাণে মেমরির বৃদ্ধির পরিমাণ নগণ্য হয়, তবে আরও কয়েকটি অক্ষর টাইপ করা দরকার।
- প্রতিটি কী-মান জোড়ের জন্য একটি নতুন অ্যারে তৈরি করা ফলশ্রুতিতে প্রয়োজনীয় মেমরির পরিমাণ দ্বিগুণ করে, তবে কয়েকটি কম অক্ষর টাইপ করা দরকার।
আপনি আরও এক ধাপ এগিয়ে যেতে পারেন এবং নতুন অ্যারে ম্যাপিংয়ের পরিবর্তে এন্ট্রি অ্যারে-তে স্থান পরিবর্তন করে সামগ্রিকভাবে বৃদ্ধি হ্রাস করতে পারেন:
const obj = {"1":5,"2":7,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0};
const toNumericPairs = input => {
const entries = Object.entries(obj);
entries.forEach(entry => entry[0] = +entry[0]);
return entries;
}
console.log(toNumericPairs(obj));
NaN
পরিবর্তে ফিরে আসবে । আপনার নির্দেশক হিসাবে স্ট্রিং ব্যবহার থেকে ফেরত পরিবর্তন করতে চান[Number(key), obj[key]]
করতে[key, obj[key]]
বা ব্যবহারObject.entries
যেমন @Pila তাদের উত্তরে প্রস্তাব