Advent Of Code 2020 solutions #JavaScript
let data = require("fs").readFileSync("input.txt", { encoding: "utf-8" }).trim();
let lines = data.split(/\n/);

const dirs = "ESWN";
let pos = [0, 0];
let dir = 0;

for (let i = 0; i < lines.length; i++) {
  let a = lines[i][0];
  const v = +lines[i].substr(1);
  if (a === "F") {
    a = dirs[dir];
  }
  switch (a) {
    case "N":
      pos[0] -= v;
      break;
    case "S":
      pos[0] += v;
      break;
    case "E":
      pos[1] += v;
      break;
    case "W":
      pos[1] -= v;
      break;
    case "L":
      dir = (dir - v / 90 + 4) % 4;
      break;
    case "R":
      dir = (dir + v / 90) % 4;
      break;
  }
}

console.log(Math.abs(pos[0]) + Math.abs(pos[1]));