ধরুন, আমাদের কাছে এইরকম স্ট্রিং লিটারেলের একটি অ্যারে আছে −
const arr = [ "fiat−palio", "fiat−stilo", "fiat−strada", "fiat−uno", "fiat−uno", "gm−corsa", "gm−celta", "ford−fiesta", "volkswagen−gol", "volkswagen−gol", "volkswagen−gol", "volkswagen−voyage" ]
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা স্ট্রিংগুলির একটি অ্যারে নেয়। উপরের অ্যারেতে, সমস্ত এন্ট্রিতে একটি জিনিস মিল রয়েছে (সবগুলি একটি স্ট্রিং ছাড়াও), তাদের সকলের একটি ড্যাশ ('−') দ্বারা আলাদা করা একটি স্ট্রিং জোড়া রয়েছে৷
আমাদের ফাংশনের এমন একটি অবজেক্ট প্রস্তুত করা উচিত যাতে ড্যাশ ('−) এর পূর্বের অংশ হিসাবে কীগুলি থাকে এবং বস্তু হিসাবে তাদের মানগুলি থাকে যাতে প্রতিটি স্ট্রিংয়ের গণনা থাকে যা তারা মূল অ্যারের মধ্যে ছিল।
অতএব, উপরের অ্যারের জন্য, আউটপুটটি এইরকম হওয়া উচিত −
const output = { "fiat": { "palio": 1, "stilo": 1, "strada": 1, "uno": 2 }, "gm": { "corsa": 1, "celta": 1 }, "ford": { "fiesta": 1 }, "volkswagen": { "gol": 3, "voyage": 1 } };
উদাহরণ
এর জন্য কোড হবে −
const arr = [ "fiat−palio", "fiat−stilo", "fiat−strada", "fiat−uno", "fiat−uno", "gm−corsa", "gm−celta", "ford−fiesta", "volkswagen−gol", "volkswagen−gol", "volkswagen−gol", "volkswagen−voyage" ]; const convertToObject = (arr = []) => { let res = arr.reduce((acc, val) => { let pair = val.split('−'); let mark = pair[0]; let model = pair[1]; if(!acc.hasOwnProperty(mark)) { acc[mark] = {}; acc[mark][model] = 1; } else { if(acc[mark].hasOwnProperty(model)) { acc[mark][model] += 1; } else { acc[mark][model] = 1; } } return acc; }, {}) return res; } console.log(convertToObject(arr));
আউটপুট
এবং কনসোলে আউটপুট হবে −
{ fiat: { palio: 1, stilo: 1, strada: 1, uno: 2 }, gm: { corsa: 1, celta: 1 }, ford: { fiesta: 1 }, volkswagen: { gol: 3, voyage: 1 } }