สมมติว่าเรามีอาร์เรย์ของวัตถุดังต่อไปนี้ -
const arr = [
{
'name' : 'd',
'index' : 3
},
{
'name' : 'c',
'index' : 2
},
{
'name' : 'a',
'index' : 0
},
{
'name' : 'b',
'index' : 1
}
]; เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ดังกล่าว
ฟังก์ชันควรจัดเรียงอาร์เรย์นี้ในลำดับที่เพิ่มขึ้นตามคุณสมบัติดัชนีของวัตถุ
จากนั้นฟังก์ชันควรจับคู่อาร์เรย์ที่เรียงลำดับกับอาร์เรย์ของสตริง โดยที่แต่ละสตริงเป็นค่าคุณสมบัติของชื่อที่สอดคล้องกันของวัตถุ
ดังนั้น สำหรับอาร์เรย์ด้านบน ผลลัพธ์สุดท้ายควรมีลักษณะดังนี้ −
const output = ["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) => {
return a['index'] - b['index'];
};
copy.sort(sorter);
const res = copy.map(({name, index}) => {
return name;
});
return res;
};
console.log(sortAndMap(arr)); ผลลัพธ์
และผลลัพธ์ในคอนโซลจะเป็น −
[ 'a', 'b', 'c', 'd' ]