在 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']
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP