题解 | 坐标移动
坐标移动
https://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29
考察JavaScript字符串操作
split()按分隔符将字符串分隔为数组
slice()截取字符串
trim()将删除首尾空格
Number()将字符串强制转换为数字,字符串不是纯数字时会转换为Nan
用isFinite判断是否为纯数字
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void (async function () {
let x = 0
let y = 0;
const command = await readline(); //输入指令
const commandList = command.split(";"); //将每条指令分隔出来存在数组中
for (const item of commandList) { //遍历每条指令
const direction = item.slice(0, 1); //取出第一位
if ( //判断是否为有效指令
direction === "A" ||
direction === "D" ||
direction === "W" ||
direction === "S"
) {
let distance = item.slice(1); //取出位移距离
if (distance.trim() != "") { //判断是否为空字符串
distance = Number(distance); //强制转换为数字
if (Number.isFinite(distance)) { //判断是否为纯数字
switch (direction) {
case "A":
x -= distance;
break;
case "D":
x += distance;
break;
case "W":
y += distance;
break;
case "S":
y -= distance;
break;
}
}
}
}
}
console.log(x + ',' + y) //输出结果
})();