题解 | 坐标移动

坐标移动

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) //输出结果
})();

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务