সমস্যা বিবরণ
অবজেক্টের একটি অ্যারে দেওয়া আছে যেখানে প্রতিটিতে name এবং index প্রপার্টি আছে। index অনুযায়ী সর্ট করে শুধু name অ্যারে রিটার্ন করতে হবে।
ইনপুট:
const arr = [
{'name': 'd', 'index': 3},
{'name': 'c', 'index': 2},
{'name': 'a', 'index': 0},
{'name': 'b', 'index': 1}
];
আউটপুট: ["a", "b", "c", "d"]
সমাধান
const arr = [
{'name': 'd', 'index': 3},
{'name': 'c', 'index': 2},
{'name': 'a', 'index': 0},
{'name': 'b', 'index': 1}
];
const sortAndMap = (arr = []) => {
const copy = arr.slice();
const sorter = (a, b) => a['index'] - b['index'];
copy.sort(sorter);
const res = copy.map(({name, index}) => name);
return res;
};
console.log(sortAndMap(arr));
আউটপুট
[ 'a', 'b', 'c', 'd' ]
ব্যাখ্যা
slice()দিয়ে কপি তৈরি করা হয়েছে যাতে মূল অ্যারে পরিবর্তন না হয়।sortদিয়ে ইনডেক্স অনুযায়ী সর্ট।mapদিয়ে শুধুnameপ্রপার্টি বের করা।