Есть условие на проверку существует ли вообще поле, и если поле существует мы его обрабатываем, но столкнулся с очень удивительным результатом. В примере все поймете :)
По сути если есть data.visible
то оно должно вернуть VISIBLE
но так как заходит false
он его пропускает. Кто подскажет лучшее решение для этой задачи?
function result(data) {
if (data.visible) {
return 'VISIBLE: ' + data.visible;
} else {
return 'NOT VISIBLE';
}
}
console.log('OK', result({
visible: true
}))
console.log('OK', result({
visible: false
}))
console.log('FAIL', result({}))
Скорее всего вам нужен оператор in. Также вас может заинтересовать метод hasOwnProperty.
Оператор in
проверяет присутствует ли свойство (пускай даже его значение "falsy" (0
, пустая строка, undefined
, null
, false
)) в самом объекте или одном из его предков по цепочке прототипов. hasOwnProperty
делает тоже самое, но не лезет в цепочку прототипов (как видно из названия).
function result(data) {
// if ("visible" in data) { // если будем проверять родителей
if (data.hasOwnProperty("visible")) {
return 'VISIBLE: ' + data.visible;
} else {
return 'NOT VISIBLE';
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Как в SVG на равных расстояниях друг от друга (статично) разместить несколько генерируемых окружностей по периметру прямоугольника(с заданными...
Есть карусель-гармошка фидл, построенная на базе jQuery - Carousel Evolution
Работая с одним open source проектом, столкнулся со строками, которые не понимаю
Owl Carousel добавляет ненужные стили к тегам, точнее ширину, которая мне не нужна