Я пишу функцию пузырьковой сортировки для упорядочивания чисел в массиве, но когда я помещаю массив вроде [1,3], vscode и chrome дают мне

Ожидаемый идентификатор. Javascript ИЛИ Uncaught SyntaxError: недопустимая цель назначения деструктуризации.

Вот полный код

function bubbleg(arr) {

  var len = arr.length;
  for (var i = 0; i < len - 1; i++) {
    for (var j = 0; j < len - 1 - i; j++) {
      if (arr[j] > arr[j + 1]) {
        var temp = arr[j];
        arr[j] = arr[j + 1];
        arr[j + 1] = temp;

      }
    }
  }
  return arr;
}

function bubbleg([1, 3]);

После внесения изменений, например

num= [1,3] function bubbleg(num);

Все хорошо, но почему нельзя поставить что-то вроде bubbleg ([1,3])? Есть ли какие-нибудь книги, чтобы, когда я смотрел на них, был список ошибок?

0
zzzbei 18 Сен 2021 в 10:37

3 ответа

Лучший ответ

Дело не в переданном вами аргументе [1, 3]. Но как вы вызываете функцию.

Вот правильный код:

function bubbleg(arr) {

    var len = arr.length;
    for (var i = 0; i < len - 1; i++) {
        for (var j = 0; j < len - i - 1; j++) {
            if (arr[j] > arr[j + 1]) {
                var temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;

            }
        }
    }
    return arr;
} 
        
 console.log(bubbleg( [3,1] ));
1
Charlie 18 Сен 2021 в 07:51

Это потому, что вы неправильно вызываете функцию bubbleg

function bubbleg([1,2])

Должно быть

bubbleg([1,2])
1
Muhannad 18 Сен 2021 в 07:41

Удалить ключевое слово функции при вызове вашей функции. function - ключевое слово, используемое для объявления функции, а не для ее вызова .

function bubbleg(arr) {
  var len = arr.length;
  for (var i = 0; i < len - 1; i++) {
    for (var j = 0; j < len - 1 - i; j++) {
      if (arr[j] > arr[j + 1]) {
        var temp = arr[j];
        arr[j] = arr[j + 1];
        arr[j + 1] = temp;

      }
    }
  }
  return arr;
}
bubbleg([1, 3]);
3
Adrian Kokot 18 Сен 2021 в 07:41