Почему данный JS код написан плохо?
Всем привет, я недавно начал изучать JS и выполняю по немногу различные задания, написал вот такой скрипт:
function bouncer(arr) { function isBigEnough(value) { if (value !== undefined || null || 0 || "" || NaN || false) { return value; } } var b = arr.filter(isBigEnough); return b; } itog = bouncer([false, null, 0, NaN, undefined, "",78]); console.log(itog); Подскажите пожалуйста, почему этот код написан плохо? И у кого есть опыт изучения JS, посоветуйте, что почитать, где задания выполнять? Спасибо большое за помощь. |
Цитата:
Есть ли смысл создавать именованную функцию в функции "bouncer", почему не использовать анонимную? Смысл в создании переменной "b" в функции "bouncer" точно отсутствует, можно сразу вернуть результат фильтрации массива. Методу "filter" нужно возвращать не значение, а истину или лож, иными словами можно сразу вернуть результат блока условия. function bouncer(arr){ return arr.filter(function(v){ return (+v>0 && v!==true); }); } itog = bouncer([false, null, 0, NaN, undefined, "",78]); console.log(itog); |
elrut,
function bouncer(arr) { function isBigEnough(value) { if (value !== undefined && value !== null && value !==0 && value !== "" && !isNaN(value) && value !== false) { return true; }; return false; } var b = arr.filter(isBigEnough); return b; } itog = bouncer([false, null, 0, NaN, undefined, "",78]); alert(JSON.stringify(itog)); |
:)
function bouncer(arr){ return arr.filter(function(v){ return (v && v === +v); }); } itog = bouncer([false, null, 0, NaN, undefined, "",78]); alert(JSON.stringify(itog)); |
Спасибо ребят, я понял)
|
Часовой пояс GMT +3, время: 19:31. |