reach to each cell in 2d array javascript

JavaScript
// ... Matrix declaration goes here

function getCell(matrix, y, x) {
  var NO_VALUE = null;
  var value, hasValue;
  
  try {
    hasValue = matrix[y][x] !== undefined;
    value    = hasValue?  matrix[y][x] : NO_VALUE;
  } catch(e) {
    value    = NO_VALUE;
  }

  return value;
}

function surroundings(matrix, y, x) {
  // Directions are clockwise
  return {
    up:        getCell(matrix, y-1, x),
    upRight:   getCell(matrix, y-1, x+1),
    right:     getCell(matrix, y,   x+1),
    downRight: getCell(matrix, y+1, x+1),
    down:      getCell(matrix, y+1, x),
    downLeft:  getCell(matrix, y+1, x-1),
    left:      getCell(matrix, y,   x-1),
    upLeft:    getCell(matrix, y-1, x-1)
  }
}
Source

Also in JavaScript: