Javascriptové pole řazení a jedinečné

Mám pole JavaScriptu jako toto:

var myData=['237','124','255','124','366','255'];

Potřebuji, aby prvky pole byly jedinečné a seřazené:

myData[0]='124';
myData[1]='237';
myData[2]='255';
myData[3]='366';

I když členy pole vypadají jako celá čísla , nejsou to celá čísla , protože jsem již každý převedl na řetězec:

var myData[0]=num.toString();
//...and so on.

Existuje nějaký způsob, jak provést všechny tyto úkoly v JavaScriptu?

Odpověď

To je ve skutečnosti velmi jednoduché. Je mnohem snazší najít jedinečné hodnoty, pokud jsou nejprve seřazeny:

function sort_unique(arr) {
  if (arr.length === 0) return arr;
  arr = arr.sort(function (a, b) { return a*1 - b*1; });
  var ret = [arr[0]];
  for (var i = 1; i < arr.length; i++) { //Start loop at 1: arr[0] can never be a duplicate
    if (arr[i-1] !== arr[i]) {
      ret.push(arr[i]);
    }
  }
  return ret;
}
console.log(sort_unique(['237','124','255','124','366','255']));
//["124", "237", "255", "366"]