Javascript 配列のソートと一意性 質問する

Javascript 配列のソートと一意性 質問する

次のような JavaScript 配列があります:

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

配列要素は一意でソートされている必要があります。

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

配列のメンバーは整数のように見える、彼らは整数ではないすでにそれぞれを文字列に変換してあるので、

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

これらすべてのタスクを JavaScript で実行する方法はありますか?

ベストアンサー1

これは実はとても簡単です。値が最初にソートされていれば、一意の値を見つけるのがずっと簡単になります。

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"]

おすすめ記事