সমস্যা বিবরণ
আমাদের কাছে নিচের মতো একটি নেস্টেড অ্যারে রয়েছে:
const arr = [
[
['dog', 'Harry'], ['age', 2]
],
[
['dog', 'Roger'], ['age', 5]
]
];
এই নেস্টেড অ্যারে গ্রহণ করে একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা এটি একটি অবজেক্ট অ্যারেতে রূপান্তর করবে।
প্রত্যাশিত আউটপুট:
const output = [
{dog: 'Harry', age: 2},
{dog: 'Roger', age: 5}
];
সমাধান
নিচের কোডটি এই রূপান্তরটি সম্পন্ন করে:
const arr = [
[
['dog', 'Harry'], ['age', 2]
],
[
['dog', 'Roger'], ['age', 5]
]
];
const prepareObjectArray = (arr = []) => {
const copy = arr.slice();
copy.forEach((el, ind, array) => {
el.forEach((element, index, subArray) => {
subArray[element[0]] = element[1];
});
el.length = 0;
array[ind] = Object.assign({}, array[ind]);
});
return copy;
};
console.log(prepareObjectArray(arr));
আউটপুট
[ { dog: 'Harry', age: 2 }, { dog: 'Roger', age: 5 } ]
কোড ব্যাখ্যা
arr.slice()ব্যবহার করে মূল অ্যারের কপি তৈরি করা হয়েছে।- প্রতিটি সাব-অ্যারে (el) এর জন্য
forEachলুপ চালানো হয়েছে। - প্রতিটি উপাদান (element) এর প্রথম মান কী (key) এবং দ্বিতীয় মান ভ্যালু (value) হিসেবে সাব-অ্যারেতে সেট করা হয়েছে।
el.length = 0দিয়ে সাব-অ্যারে খালি করা হয়েছে।Object.assign({}, array[ind])দিয়ে সাব-অ্যারেকে অবজেক্টে রূপান্তর করা হয়েছে।