@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 всегда
В третьих ваша сортировка то не где не сохраняется, смысл?
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Admitad Projects Москва
от 130 000 до 200 000 ₽
Fundraise Up Санкт-Петербург
от 2 500 до 3 500 $
28 мая 2020, в 01:17
1000 руб./в час
27 мая 2020, в 23:51
3000 руб./за проект