Computer >> Máy Tính >  >> Lập trình >> Javascript

Tìm hướng di chuyển cuối cùng trong JavaScript

Vấn đề

Chúng tôi được yêu cầu viết một hàm JavaScript nhận vào một mảng các ký tự đơn, arr, asthe đầu tiên và đối số duy nhất.

Mảng chỉ có thể chứa 4 ký tự, chúng là -

  • ‘N’ → là viết tắt của hướng Bắc
  • ‘S’ → là viết tắt của hướng Nam
  • ‘W’ → là viết tắt của hướng Tây
  • ‘E’ → là viết tắt của hướng Đông

Mỗi ký tự chỉ định một bước di chuyển của đơn vị khoảng cách theo hướng cụ thể đó. Và nếu bất kỳ nơi nào trong mảng, hai hướng ngược nhau, [(‘S’ và ‘N’) hoặc (‘E’ và ‘W’)] xuất hiện liền kề, chúng sẽ hủy chuyển động của nhau. Do đó, hàm của chúng ta phải tìm ra kết quả của hướng di chuyển của toàn bộ mảng.

Ví dụ:nếu đầu vào của hàm là -

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

Sau đó, đầu ra phải là -

const output = 'W';

Giải thích đầu ra

‘N’ và ‘S’ sẽ hủy nhau ‘E’ và ‘W’ sẽ hủy nhau và cuối cùng ‘N’ và ‘S’again hủy nhau chỉ để lại‘ W ’.

Ví dụ

Sau đây là mã -

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));

Đầu ra

Sau đây là đầu ra của bảng điều khiển -

['W']