สมมติว่าเรามีอาร์เรย์ของวัตถุดังต่อไปนี้ -
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' ]