Mbinu ya sort

Mbinu sort hupanga safu kwa mpangilio wa kitamathalifa na hurudisha safu iliyobadilishwa. Kwa hiari unaweza kubainisha chaguo-msingi lako kwa kupanga.

Sintaksia

javascriptsafu.sort([chaguo_msingi]);

Mfano

Wacha tupange safu:

javascriptlet arr = ['d', 'b', 'a', 'c'];
console.log(arr.sort());

Matokeo ya kutekeleza kificho:

javascript['a', 'b', 'c', 'd']

Mfano

Wacha tupange safu yenye nambari:

javascriptlet arr = [4, 1, 7, 2];
console.log(arr.sort());

Matokeo ya kutekeleza kificho:

javascript[1, 2, 4, 7]

Mfano

Wacha tuongeze nambari kwenye safu kisha tuipange:

javascriptlet arr = [1, 123, 2, 4, 111, 7];
console.log(arr.sort());

Kutokana na matokeo ya kutekeleza kificho tutaona kwamba nambari hazipo kwa mpangilio wa kupanda, bali kwa mpangilio wa kitamathalifa, yaani, nambari zinalinganishwa kati yao kama masharti. Wakati huo huo, kulinganisha hufanyika kwa kila herufi, kodii ya herufi ya kwanza iko kubwa zaidi, kuliko kodii ya jirani nk. Matokeo:

javascript[1, 111, 123, 2, 4, 7]

Mfano

Sasa wacha tuipange safu kwa kutumia chaguo-msingi, ambapo tutaweka sharti - kama kigezo cha kwanza kikikubwa kuliko cha pili, basi tubadilishe mpangilio wake (kwa hili katika return onyesha nambari yoyote chanya). Kwa upande mwingine, kubadilisha mpangilio si lazima na tunaonyesha 0 au nambari yoyote hasi:

javascriptlet arr = [1, 123, 2, 4, 111, 7];

arr.sort(function(a, b) {
  if (a > b) {
    return 1;
  } else {
    return -1;
  }
});

console.log(arr);

Matokeo ya kutekeleza kificho:

javascript[1, 2, 4, 7, 111, 123]

Mfano

Wacha tufupishe kificho katika chaguo-msingi chetu kutoka kwa mfano uliopita:

javascriptlet arr = [1, 123, 2, 4, 111, 7];

arr.sort(function(a, b) {
  return a - b;
});

console.log(arr);

Matokeo ya kutekeleza kificho:

javascript[1, 2, 4, 7, 111, 123]

Mfano

Sasa kwa kutumia chaguo-msingi tuipange safu kwa mpangilio wa kushuka:

javascriptlet arr = [1, 123, 2, 4, 111, 7];

arr.sort(function(a, b) {
  return b - a;
});

console.log(arr);

Matokeo ya kutekeleza kificho:

javascript[123, 111, 7, 4, 2, 1]

Mfano

Wacha tuipange safu ya vitu kwa ufunguo 'one' kwa mpangilio wa kupanda:

javascriptlet arr = [
  {one: 1, two: 2},
  {one: 7, two: 1},
  {one: 3, two: 3}
];
arr.sort(function(a, b) {
  return a.one - b.one;
});

console.log(arr);

Matokeo ya kutekeleza kificho:

javascript[
  {one: 1, two: 2},
  {one: 3, two: 3},
  {one: 7, two: 1}
]

Mfano

Sasa wacha tuipange safu ya vitu kwa ufunguo 'two':

javascriptlet arr = [
  {one: 1, two: 2},
  {one: 7, two: 1},
  {one: 3, two: 3}
];
arr.sort(function(a, b) {
  return a.two - b.two;
});

console.log(arr);

Matokeo ya kutekeleza kificho:

javascript[
  {one: 7, two: 1},
  {one: 1, two: 2},
  {one: 3, two: 3}
]

Mfano

Wacha tuangalie ikiwa safu imebadilika baada ya kutumia mbinu sort:

javascriptlet arr = ['b', 'a', 'd', 'c'];
let res = arr.sort();

console.log(arr);

Matokeo ya kutekeleza kificho:

javascript['a', 'b', 'c', 'd']

Angalia pia

  • mbinu filter,
    ambayo inaruhusu kuchuja vipengele vya safu