Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

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

- Ученик (221), открыт 2 недели назад
(Я абсолютный новичок, не судите строго)
Задание: дан массив с одинаковыми числами и одним отличающимся (например [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))
3 ответа
Оракул Оракул (62081) 2 недели назад
Индексация во всех языках программирования начинается с 0, а не 1
И сравнение двойное равно == (и тройное ===, только в js), у вас одно =
♡$ⴎG@r₱u₷sყ♡ Искусственный Интеллект (157159) 2 недели назад
 
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));
Лайт Ягами Искусственный Интеллект (309282) 2 недели назад
 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));
Похожие вопросы