Не так давно очень волшебная проблема возникла в коде моего коллеги. Это очень простая проблема. Проблема заключается во второй сортировке.
Мы воспринимаем как само собой разумеющееся, что в первой сортировке массив был отсортирован от больших до малых в соответствии с атрибутами A. Но на самом деле это связано с алгоритмом сортировки, выбранным языком.
Ниже приведен пример из StackoverFlow
Кода -копия выглядит следующим образом:
var arraytosort = [
{name: 'a', сила: 1}, {name: 'b', сила: 1}, {name: 'c', сила: 1}, {name: 'd', сила: 1},
{name: 'e', сила: 1}, {name: 'f', сила: 1}, {name: 'g', сила: 1}, {name: 'H', сила: 1},
{name: 'i', сила: 1}, {name: 'J', сила: 1}, {name: 'k', сила: 1}, {name: 'l', сила: 1},
{name: 'm', сила: 1}, {name: 'n', сила: 1}, {name: 'o', сила: 1}, {name: 'p', сила: 1},
{name: 'q', сила: 1}, {name: 'r', сила: 1}, {name: 's', сила: 1}, {name: 't', сила: 1}
];
arraytosort.sort (function (a, b) {
возврат B.Strength - A.Strength;
});
arraytosort.foreach (function (element) {
console.log (element.name);
});
Мы могли бы подумать, что значение последнего элемента все еще от A до T, но фактический результат не в порядке.
Затем мы должны попытаться избежать этой ситуации.