Почему данный 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, время: 15:44. |