I am working as a web developer for nearly 20 years. I care a lot about simple and maintainable code that is fun to work with, good documentation and clean APIs.
Here is another approach when you want to go for SPEED (maybe you need to look up coordinates very often?).
letfastMap=null;functioncomputeFastMap(in2DArray){fastMap={};for(letx=0;x<in2dArray[0].length;x++){for(lety=0;y<in2dArray.length;y++){fastMap[in2dArray[y][x]]={x,y};}}}functionfind2DCoordinate(value){if(!fastMap){thrownewError("Compute the fastMap, first!");}returnfastMap[value]||null;}
To make this work, you need to call computeFastMap(grid) at the beginning, once.
Afterwards, you can call find2DCoordinate() often but since all coordinates are pre-computed, the lookup in the
map is basically "for free" and will be VERY fast.
Good call, I hadn't worked under the assumption of needing to do multiple lookups. It reminds me of a tweet I saw of using coordinate pairs in tuples for dictionary lookups in Python twitter.com/nedbat/status/15225434...
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
Here is another approach when you want to go for SPEED (maybe you need to look up coordinates very often?).
To make this work, you need to call
computeFastMap(grid)
at the beginning, once.Afterwards, you can call
find2DCoordinate()
often but since all coordinates are pre-computed, the lookup in themap is basically "for free" and will be VERY fast.
Good call, I hadn't worked under the assumption of needing to do multiple lookups. It reminds me of a tweet I saw of using coordinate pairs in tuples for dictionary lookups in Python twitter.com/nedbat/status/15225434...