I have a few arrays of 50+ names like this.
["dan", "ryan", "bob", "steven", "corbin"]
["bob", "dan", "steven", "corbin"]
I have another array that has the correct order. Note that the second array above does not include all of the names, but I still want it to follow the order of the following:
["ryan", "corbin", "dan", "steven", "bob"]
There is no logical order to it, they are just in this order. What makes sense to me is to compare each array against the correctly ordered one. I think I saw some people doing this with PHP, but I was not able to find a JavaScript solution. Does anyone have any idea how to do this? I've been trying for a few hours and I'm stumped.
Best Answer
Use
indexOf()
to get the position of each element in the reference array, and use that in your comparison function.Searching the reference array every time will be inefficient for large arrays. If this is a problem, you can convert it into an object that maps names to positions: