Belum lama ini, masalah yang sangat ajaib masuk ke dalam kode kolega saya. Ini adalah masalah yang sangat sederhana. Masalahnya terletak pada penyortiran kedua.
Kami akan menerima begitu saja bahwa dalam penyortiran pertama, array telah diurutkan dari besar ke kecil sesuai dengan atribut a. Tetapi pada kenyataannya, ini terkait dengan algoritma sortir yang dipilih oleh bahasa.
Di bawah ini adalah contoh yang ditemukan dari stackoverflow
Salinan kode adalah sebagai berikut:
var arraytoSort = [
{name: 'a', kekuatan: 1}, {name: 'b', kekuatan: 1}, {name: 'c', kekuatan: 1}, {name: 'd', kekuatan: 1},
{name: 'e', kekuatan: 1}, {name: 'f', kekuatan: 1}, {name: 'g', kekuatan: 1}, {name: 'h', kekuatan: 1},
{name: 'i', kekuatan: 1}, {name: 'j', kekuatan: 1}, {name: 'k', kekuatan: 1}, {name: 'l', kekuatan: 1},
{name: 'm', kekuatan: 1}, {name: 'n', kekuatan: 1}, {name: 'o', kekuatan: 1}, {name: 'p', kekuatan: 1},
{name: 'q', kekuatan: 1}, {name: 'r', kekuatan: 1}, {name: 's', kekuatan: 1}, {name: 't', kekuatan: 1}
];
arraytoSort.sort (function (a, b) {
Return B.Strength - A.strength;
});
arraytoSort.foreach (function (elemen) {
console.log (element.name);
});
Kami akan berpikir bahwa nilai elemen terakhir masih dari A ke T, tetapi hasil sebenarnya sudah rusak.
Maka kita harus mencoba menghindari situasi ini.