Так что мне интересно, что не так с моим кодом, который получает сортировку с аргументом сравнения, возвращает правильный порядок для всех чисел, но 5. У меня есть чувство, что это имеет какое-то отношение к тому, как я отключен цифры 12, 4, 94 и 1, но я полный новичок и довольно смущен. Заранее спасибо!Функция сортировки сортировки по Javascript Array
<!DOCTYPE html>
<html>
<head>
<title>Array Manipulation:Sort</title>
<script type="text/javascript">
var parts = [];
parts.push("5", "42", "12");
var removed = parts.pop();
alert(removed);
function compare(value1, value2) {
if (value1 < value2) {
return -1;
} else if (value1 > value2) {
return 1;
} else {
return 0;
}
}
parts.unshift(12, 4, 94, 1);
alert(parts.sort()); //1, 12, 4, 42, 5, 94
alert(parts.sort(compare)); //1, 4, 12, 42, 5, 94
</script>
</head>
</html>
Я думаю, потому что вы смешиваете строки и числа. – Josh
Некоторые из ваших элементов массива - это числа, некоторые из которых являются строками. Это не работает. Вы хотите сравнить их по числовому значению или по лексическим символам? – Bergi
См. Также [Как правильно отсортировать массив целых чисел] (http://stackoverflow.com/q/1063007/1048572) - не знаете, каков ваш вопрос, может быть, это дубликат? – Bergi