@mrdo
мне 20 я учусь веб программирование

Как отсортировать элементы массива по возрастанию и вернуть true или false?

function sortA(x){
	if (x.sort(function(a, b){a-b})) {
		return true
	}
	return false
}
console.log(sortA([4,3,5,8,44,88,23,145]))


нужно вернуть true если элементы массива отсортированны по возрастанию, а если нет то false. Что не так в коде?
  • Вопрос задан
  • 64 просмотра
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
нужно вернуть true если элементы массива отсортированны по возрастанию, а если нет то false. Что не так в коде?
«Не так» здесь то, что никак не проверяется отсортированность массива.

Надо пройти по элементам, и если хоть один окажется меньше предыдущего, сразу вернуть false.
Иначе вернуть true.
spoiler
function isSorted(arr) {
  const length = arr.length;
  if (length < 2) return true;
  for (let i = 1; i < length; i++) {
    if (arr[i] < arr[i - 1]) return false;
  }
  return true;
}

isSorted([1,2,2,5,9])  // true
isSorted([4,3,5,8,44,88,23,145])  // false
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
twobomb
@twobomb
Очень странно.
Ну во первых тут ошибка
x.sort(function(a, b){a-b}) 
//Нужно или
x.sort(function(a, b){return a-b}) 
//или
x.sort((a, b)=>a-b)

Во вторых вы просто соритруете массив и возвращаете true всегда
В третьих ваша сортировка то не где не сохраняется, смысл?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы