Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+2

Ошибка в коде (js)

(Я абсолютный новичок, не судите строго)
Задание: дан массив с одинаковыми числами и одним отличающимся (например [1,1,1,1,2,1,1])
я написал код, который сначала вычисляет повторяющееся число(переменная chislo), а затем с помощью for и if, он находил число, неравное переменной chislo , записывал его в переменную lishnee и возвращал.
Код работает всегда, кроме случаев, когда лишнее число находится именно вторым в массиве, если лишнее число первое, третье и т.д., то всё работает, но если число второе по счёту, alert выдаёт undefined.
Помогите найти ошибку


numbers = [7,8,7,7,7,7,7,7,7,7,7,7,7,7,7]

function stray(numbers) {

if (numbers[1]= numbers[2]){
chislo = numbers[1]
} else {
chislo = numbers[3]
}

for ( i = 0; i <= numbers.length; i++){

if (numbers[i] != chislo) {
let lishnee = numbers[i];
return (lishnee);
}
}



return (lishnee);
}
alert (stray(numbers))

По дате
По рейтингу
Аватар пользователя
Высший разум
8мес
1234567891011121314151617181920212223
 
let numbers = [7, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7]; 
 
function stray(numbers) { 
    let chislo; 
    if (numbers[1] === numbers[2]) { 
        chislo = numbers[1]; 
    } else { 
        chislo = numbers[0]; 
    } 
 
    let lishnee; 
    for (let i = 0; i < numbers.length; i++) { 
        if (numbers[i] !== chislo) { 
            lishnee = numbers[i]; 
            return lishnee; 
        } 
    } 
 
    return lishnee; 
} 
 
alert(stray(numbers));  
Аватар пользователя
Оракул
8мес

Индексация во всех языках программирования начинается с 0, а не 1
И сравнение двойное равно == (и тройное ===, только в js), у вас одно =

Аватар пользователя
Искусственный Интеллект
8мес
123456789101112
 let numbers = [7, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7];   

function stray(numbers) {
    let chislo = numbers[0];
 
    if (chislo !== numbers[1]) {
        chislo = numbers[2];
    }
    return numbers.find(x => x !== chislo);   
}

alert(stray(numbers));