JavaScript | Clean, Simple, Simulated Drop | 100%
\nconst findBall = grid => {\n  const balls = []\n  for (let i = 0; i < grid[0].length; i++) {\n    balls.push(simulateBall(i))\n  }\n  return balls\n  \n  func
```\nconst findBall = grid => {\n  const balls = []\n  for (let i = 0; i < grid[0].length; i++) {\n    balls.push(simulateBall(i))\n  }\n  return balls\n  \n  function simulateBall(idx) {\n    for (let i = 0; i < grid.length; i++) {\n      const level = grid[i]\n      if (isValley(idx, level)) return -1\n      else idx += level[idx]\n      if (isOutOfBounds(idx)) return -1\n    }\n    return idx\n  }\n  \n  function isOutOfBounds(idx) {\n    return idx < 0 || idx >= grid[0].length\n  }\n  \n  function isValley(idx, level) {\n    return (level[idx] === 1 && level[idx + 1] === -1) || \n      (level[idx] === -1 && level[idx - 1] === 1)\n  }\n}\n```
['JavaScript']