সমস্যা বিবরণ
একটি ২D অ্যারে দেওয়া আছে যেখানে প্রতিটি সাব-অ্যারে ইনডেক্স নির্দেশ করে। একটি স্পার্স ২D অ্যারে তৈরি করতে হবে যেখানে chỉ নির্দিষ্ট ইনডেক্সে ভ্যালু ১ থাকবে, বাকি undefined।
ইনপুট: [[3, 1], [2, 12], [3, 3]]
অর্থাৎ: output[3][1] = 1, output[2][12] = 1, output[3][3] = 1
সমাধান
const arr = [
[3, 1],
[2, 12],
[3, 3]
];
const map2D = (arr = []) => {
const res = [];
arr.forEach(el => {
res[el[0]] = res[el[0]] || [];
res[el[0]][el[1]] = 1;
});
return res;
};
console.log(map2D(arr));
আউটপুট
[ <2 empty items>, [ <12 empty items>, 1 ], [ <1 empty item>, 1, <1 empty item>, 1 ] ]
ব্যাখ্যা
res[el[0]] = res[el[0]] || []দিয়ে সাব-অ্যারে অটোমেটিক তৈরি হয়।- জাভাস্ক্রিপ্ট অ্যারে স্পার্স হলে (empty slots) কনসোলে
<N empty items>দেখায়। - এটি মেমরি দক্ষ রিপ্রেজেন্টেশন বড় ম্যাট্রিক্সের জন্য।