2

I have array like below , I want to sort it alphanumerically by ascending or descending in faster way.

[
  "NFO:BANKNIFTY1931428900CE",
  "NFO:BANKNIFTY1931429000CE",
  "NFO:BANKNIFTY1931429500CE",
  "NFO:BANKNIFTY1931429400CE",
  "NFO:BANKNIFTY1931429300CE",
  "NFO:BANKNIFTY1931429200CE"
]

I want to sort it like below , descending or ascending

[
  "NFO:BANKNIFTY1931429500CE",
  "NFO:BANKNIFTY1931429400CE",
  "NFO:BANKNIFTY1931429300CE",
  "NFO:BANKNIFTY1931429200CE",
  "NFO:BANKNIFTY1931429000CE",
  "NFO:BANKNIFTY1931428900CE",
]

I tried something like below , but it does not sort properly and its slow too.

function sort() {
    var arr = disorderedArray;
    arr.sort(function(a, b) {
        a = a.split(" ");
        b = b.split(" ");
        var an = parseInt(a[0], 10);
        var bn = parseInt(b[0], 10);
        return an < bn ? 1 : (an > bn ? -1 : (a[1] < b[1] ? -1 : (a[1] > b[1] ? 1 : 0)));
    });
    console.log(arr.reverse());
}

Note: Sometimes it can involve mix of lowercase letters.

Gracie williams
  • 1,287
  • 2
  • 16
  • 39

1 Answers1

5

Simply use .sort().

var items = [
  "NFO:BANKNIFTY1931428900CE",
  "NFO:BANKNIFTY1931429000CE",
  "NFO:BANKNIFTY1931429500CE",
  "NFO:BANKNIFTY1931429400CE",
  "NFO:BANKNIFTY1931429300CE",
  "NFO:BANKNIFTY1931429200CE"
]
var sorted = items.sort()
console.log(sorted);
Jodast
  • 1,279
  • 2
  • 18
  • 33
  • This doesn't take in to consideration the numbers on similarly named strings. i.e. ...428900... ...429000...Higher Number (good) ...429500...Higher Number (good) ...429400...LOWER Number (not good) – jasondeegan Jul 28 '23 at 21:23