ปัญหา
เราต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของตัวเลข ฟังก์ชันควรคืนค่าสตริงที่ประกอบด้วย 4 ส่วน:
- คำ (word) 4 ตัวอักษร สร้างจากตัวอักษรที่มาจากตัวเลข 2 ตัวแรกและ 2 ตัวสุดท้ายในอาร์เรย์ ลำดับอ่านจากซ้ายไปขวา (ตัวแรก, ตัวที่สอง, ตัวที่สองจากท้าย, ตัวสุดท้าย)
- เหมือนข้างต้น แต่หลังจัดเรียงอาร์เรย์จากน้อยไปมาก
- เหมือนข้างต้น แต่หลังจัดเรียงอาร์เรย์จากมากไปน้อย
- เหมือนข้างต้น แต่หลังแปลงอาร์เรย์เป็นตัวอักษร ASCII และจัดเรียงตามตัวอักษร
ทั้ง 4 ส่วนควรเป็นสตริงเดียว คั่นด้วยเครื่องหมายขีด (-)
ตัวอย่าง
โค้ดตัวอย่างดังนี้:
const arr = [99, 98, 97, 96, 81, 82, 82];
const transform = (arr = []) => {
let res = [];
res.push(arr[0], arr[1], arr[arr.length-2], arr[arr.length-1]);
res = res.map(x=>String.fromCharCode(x)).join('');
const arr1 = arr
.map(el => String.fromCharCode(el))
.sort();
const arr2 = (arr1.slice(0, 2) + ',' + arr1.slice(-2))
.split(',')
.join('');
const arr3 = arr2
.split('')
.reverse()
.join('');
return `${res}-${arr2}-${arr3}-${arr2}`;
};
console.log(transform(arr));
ผลลัพธ์
cbRR-QRbc-cbRQ-QRbc