{"size": 489, "ext": "js", "max_stars_repo_path": "Programs/JavaScript/GridTraveler.js", "max_stars_repo_name": "gzemel/Algorithms", "max_stars_repo_stars_event_min_datetime": null, "max_stars_repo_stars_event_max_datetime": null, "max_issues_repo_path": "Programs/JavaScript/GridTraveler.js", "max_issues_repo_name": "gzemel/Algorithms", "max_issues_repo_issues_event_min_datetime": null, "max_issues_repo_issues_event_max_datetime": null, "max_forks_repo_path": "Programs/JavaScript/GridTraveler.js", "max_forks_repo_name": "gzemel/Algorithms", "max_forks_repo_forks_event_min_datetime": null, "max_forks_repo_forks_event_max_datetime": null}
{"max_stars_count": null, "max_issues_count": null, "max_forks_count": null, "avg_line_length": 32.6, "max_line_length": 72, "alphanum_fraction": 0.5889570552}

const gridTraveler = (m, n, memo = {}) => {
    const key = m + "," + n;
    //are the arguments inside memo?
    if (key in memo) return memo[key];
    if (m === 1 && n === 1) return 1;
    if (m === 0 || n === 0) return 0;
    memo[key] = gridTraveler(m-1, n, memo) + gridTraveler(m, n-1, memo);
    return memo[key];
}
console.log(gridTraveler(4, 6));
console.log(gridTraveler(6, 4));
console.log(gridTraveler(1, 1));
console.log(gridTraveler(0, 4));
console.log(gridTraveler(18, 18));