Sarathi Hansen Sarathi Hansen - 1 year ago 87
Javascript Question

JavaScript - Sort an array based on another array of integers

Say I have an array:


What i want to do is sort an array such as:

["one", "two", "three", "four", "five", "six"]

so that the order corresponds to the first array.

This would be the output:

["one", "four", "five", "three", "six", "two"]

Is there an easy way to accomplish this?

Answer Source

You can do something like this:

function getSorted(arr, sortArr) {
  var result = [];
  for(var i=0; i<arr.length; i++) {
    result[i] = arr[sortArr[i]];
  return result;

You can test it out here.

Note: this assumes the arrays you pass in are equivalent in size, you'd need to add some additional checks if this may not be the case.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download