У меня возникло странное поведение при попытке сортировать массив JavaScript.Странное поведение при сортировке массива JavaScript
var arr = ['a', 'b', 'C', 'd', 'e', 'f', 'g', 'h', 'I', 'k'];
arr.sort(function (a, b) {
console.log(a, b);
if (a.length < b.length) return 1;
else if (a.length > b.length) return -1;
else return 0;
});
прекрасно работает в этом случае дает мне обратно тот же массив.
консоль выглядит следующим образом,
Но когда я пытаюсь для этого ниже входа,
var arr = ['a', 'b', 'C', 'd', 'e', 'f', 'g', 'h', 'I', 'k', 'l'];
дает мне это,
я могу Не понимаю, почему это происходит в г.
PS. Я пишу этот пользовательский сортировку, проверяя длину элементов, потому что мне нужен массив, который имеет свои элементы, отсортированные по длине.
попробовать 'Возвращение a.length - b.length' – Isaac
также, все эти длины будут 1 ... попробуйте console.log() некоторые из переменных – Isaac
Это Бесполезный Не работай. Да, я знаю. Все должны быть 1. Следовательно, их следует пропустить и быть такими, какие они есть. Это обрабатывается в возврате else 0; –