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

การแสดงวินาทีในรูปแบบ HH:MM:SS ใน 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']