js почему вторая функция не работает

Напишите функцию, которая проверяет, находится ли элемент в данной позиции в данный массив целых чисел больше, чем два его соседа (если таковые существуют).

let arr = [2, 4, 6, 3, 5, 7, 8, 0, 5, 4, 3];

function isBigger (arr, i) {
    if (i != 0 && i != arr.length) {

        if (arr[i] > arr [i+1]) {
            
            if (arr[i] > arr[i - 1]) {
                console.log('The number is bigger');
            } else {
                console.log('Left neihbour is bigger or equal');
            }
        } else {
            console.log('Right neihbour is bigger or equal');
        }
    } else { 
    console.log('No neihbour');
    }
}
isBigger(arr, 2);
isBigger(arr, 0);
isBigger(arr, 1);

/* Напишите функцию, которая возвращает индекс первого элемента в массиве, который больше, чем его соседи, или - 1, если такого элемента нет, воспользуйтесь функцией из предыдущего упражнения.

*/

 function findBigger (arr) {
    for (let i = 1; i < arr.length-1; i++) {
        isBigger(arr);
        console.log([i]);
    }
 }
 findBigger();

Ответы (1 шт):

Автор решения: Aziz Umarov

Думаю что-то такое хотели получить

let arr = [2, 4, 6, 3, 5, 7, 8, 0, 5, 4, 3];

function isBigger (arr, i) {
    if (i > 0 && i < arr.length - 1 && arr[i] > arr[i - 1] && arr[i] > arr[i + 1]) {
        return true;
    } 
    return false;
}

console.log(isBigger(arr, 2))
console.log(isBigger(arr, 0));
console.log(isBigger(arr, 1));

function findBigger(arr) {
    for(let i = 1; i< arr.length -1; i++){
      if (isBigger(arr, i)) return i;
    } 
    return -1;
}

let index = findBigger(arr);
console.log(index, arr[index]);

К вопросу почему вторая функция не работает.

isBigger(arr);

думаю вы хотели вызвать

isBigger(arr, i)

а это console.log([i]); я так понимаю вы хотели получить index.

Ошибка ваша в том что вы путаете Возврат значения из функции (return), вывод значения в консоль console.log. Так вот Ваша isBigger ничего не возращяет, только выводить текст в консоль.

UPD К коментарию о возможности сократить можно написать так

let arr = [2, 4, 6, 3, 5, 7, 8, 0, 5, 4, 3];

let isBigger = (a, i) => i>0&&i<a.length-1&&a[i]>a[i-1]&&a[i]>a[i + 1];


console.log(isBigger(arr, 2))
console.log(isBigger(arr, 0));
console.log(isBigger(arr, 1));

let findBigger = a => a.indexOf(a.filter((_, i)=>isBigger(a, i))[0]);

let index = findBigger(arr);

console.log(index, arr[index]);

→ Ссылка