Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การแปลงอาร์เรย์ตัวเลขเป็นอาร์เรย์ตัวอักษรใน JavaScript


ปัญหา

เราต้องเขียนฟังก์ชัน 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