Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

ค้นหาทิศทางสุดท้ายของการเคลื่อนไหวใน JavaScript


ปัญหา

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของอักขระตัวเดียว arr เป็นอาร์กิวเมนต์แรกและตัวเดียว

อาร์เรย์สามารถมีอักขระได้เพียง 4 ตัวเท่านั้น คือ −

  • ‘N’ → หมายถึงทิศเหนือ
  • ‘S’ → หมายถึงทิศใต้
  • ‘W’ → หมายถึงทิศตะวันตก
  • ‘E’ → หมายถึงทิศตะวันออก

อักขระแต่ละตัวระบุการเคลื่อนที่ของระยะทางหน่วยไปในทิศทางนั้น และหากตำแหน่งใดในอาร์เรย์ สองทิศทางตรงข้ามกัน [('S' และ 'N') หรือ ('E' และ 'W')] ปรากฏติดกัน จะยกเลิกการเคลื่อนที่ของกันและกัน ดังนั้น ฟังก์ชันของเราจึงควรหาผลลัพธ์ทิศทางการเคลื่อนที่ของอาร์เรย์ทั้งหมด

ตัวอย่างเช่น หากอินพุตของฟังก์ชันคือ −

const arr = ['N', 'S', 'S', 'E', 'W', 'N', 'W'];

จากนั้นผลลัพธ์ควรเป็น −

const output = 'W';

คำอธิบายผลลัพธ์

'N' กับ 'S' จะยกเลิกกัน 'E' และ 'W' จะยกเลิกกัน และสุดท้าย 'N' และ 'S' อีกครั้งจะยกเลิกซึ่งกันและกัน เหลือเพียง 'W'

ตัวอย่าง

ต่อไปนี้เป็นรหัส -

const arr = ['N', 'S', 'S', 'E', 'W', 'N', 'W'];
const cancelDirections = (arr = []) => {

   let str = arr.join('');
   while(str.includes('NS') || str.includes('SN') || str.includes('EW')
|| str.includes('WE')){
      str = str.replace('NS', '');
      str = str.replace('SN', '');
      str = str.replace('EW', '');
      str = str.replace('WE', '');
   };
   return str.split('');
};
console.log(cancelDirections(arr));

ผลลัพธ์

ต่อไปนี้เป็นเอาต์พุตคอนโซล -

['W']