寻找运动的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']