Не могу понять логику
Тест для начинающих с Codecademy
дан изначальный код: var lost = [4, 8, 15, 16, 23, 42]; var count = lost.length; var isLost = function (n) { for ( ) { if ( n === lost[i]) { return ; } } return ; }; if ( isLost(12) ) { console.log('12 is a lost number'); } if ( isLost(16) ) { console.log('16 is a lost number'); } Задание такое: дописать функцию isLost так, чтобы при проверке числа n цикл возвращал значения true или false. таким образом будет производится проверка является число isLost или нет. Вопросы: 1) зачем в коде эта строка var count = lost.length; ? переменная count далее нигде не используется. Так зачем? Запутать новичка? 2) я дописал условие FOR и получилось следующее var lost = [4, 8, 15, 16, 23, 42]; var count = lost.length; var isLost = function (n) { for (i = 0; i < n; i++) { if ( n === lost[i]) { return; } } return ; }; if ( isLost(12) ) { console.log('12 is a lost number'); } if ( isLost(16) ) { console.log('16 is a lost number'); } вызывает смешанные чувства куски "function (n)" и пустой return. Откуда взялась n, чему равна? При исправлении на return n; программа выполняется и тест считается пройденным. Кто уже не такой кран в java как я, и кому не лень, объясните плз пункты 1 и 2. |
Что-то всё уж слишком заумно сделано :)
var lost = [4, 8, 15, 16, 23, 42]; function isLost(n) { return !!(lost.indexOf(n) + 1); } if(isLost(12)) alert('12 is a lost number'); if(isLost(16)) alert('16 is a lost number'); |
Я так понимаю, что задание таково.
Есть массив lost. Функция isLost должна перебирать lost с помощью цикла и проверять есть ли в нем n. Тогда функция lost имеет следующий вид: var isLost = function (n) { for (var i = 0; i < count; i++) { if ( n === lost[i]) { return true; } } return false; }; count обьявлена как отдельная переменная, т.к. если написать for (var i = 0; i < lost.length; i++) то в каждой итерации будет обращение к свойству length обьекта lost, а это - дополнительное время. А так мы занесли значение lost.length в переменную и тем самым немного оптимизировали работу цикла |
Цитата:
var lost = [4, 8, 15, 16, 23, 42]; var count = lost.length; var isLost = function (n) { for (var i=0; i<count; i++ ) { if ( n === lost[i]) { return false; } } return true; }; if ( isLost(12) ) { alert('12 is a lost number'); //console.log('12 is a lost number'); } if ( isLost(16) ) { alert('16 is a lost number'); //console.log('16 is a lost number'); } |
animatio, правильно начал... :yes:
Но его обманули аглицкие словечки в конце... :( Что повлияло на не правльный (по заданию) возврат значений из функции. ЕПРСТ, это просто тест на понимание некой части галиматьи. :D И не более того... |
Цитата:
Нужно правильно заполнить "пустые клеточки"... |
О, благодарствую.
Просто не хочется дальше продолжать обучение, не поняв данный кусочек. |
Цитата:
Я бы сказал, что весьма интересный и занимательный. |
Часовой пояс GMT +3, время: 09:25. |