题解 | #坐标移动#

坐标移动

https://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29

let commendStr = readline()

/** 给定原坐标,移动方向及移动距离,返回移动后的坐标 */
const move = ({x, y}, direction, distance) => {
    if (direction === 'A') {
        x -= distance
    } else if (direction === 'W') {
        y += distance
    } else if (direction === 'S') {
        y -= distance
    } else if (direction === 'D') {
        x += distance
    }
    return {
        x, 
        y        
    }
}

/** 处理坐标字符串,移除不合法的坐标 */
const commends = (commendStr.split(';')).filter((commend) => {
    return ['A', 'W', 'S', 'D'].includes(commend.charAt(0)) && !isNaN(commend.substring(1))
})

/** 初始坐标 */
let coord = {
    x: 0,
    y: 0
}

/** 遍历所有坐标,得到最终结果 */
commends.forEach(commend => {
    coord = move(coord, commend.charAt(0), +commend.substring(1))
})

console.log(`${coord.x},${coord.y}`)

全部评论

相关推荐

10-05 23:02
东北大学 Java
我说句实话啊:那时候看三个月培训班视频,随便做个项目背点八股,都能说3 40w是侮辱价
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务