Я использую Underscore.js в своем проекте и натолкнулся на странное поведение. Когда я фильтрую массив с changes_summary === 2
, я получаю желаемый результат, но когда я использую то же самое с changes_summay === 0
, я не получаю никакого вывода.странное поведение при использовании Underscore при тестировании равно условию
Ниже приводится код:
var result={
"data": [
{
"id": 956,
"changes_summary": 2,
"name": "Pradeep",
"age": 32
},
{
"id": 956,
"changes_summary": 0,
"name": "praveen",
"age": 22
}
]
}
var filtered = _.filter(result.data, function(obj){
return (obj.changes_summary && obj.changes_summary === 2)
});
//working when comparing with changes_summary with 2 but not working when comparing with 0
console.log(filtered);
Пожалуйста, дайте мне знать, где я неправильно. Ссылка на Jsfiddle прилагается: Jsfiddle
'obj.changes_summary &&' удалить это, чтобы проверить на '0'. '0' является' falsy' См. Https://jsfiddle.net/tusharj/2j13o0be/1/ – Tushar
@ Тушара, удаляющего его, не обязательно обязательно. Если фильтр должен применяться только к объектам, которые определенно обладают свойством, то необходим дополнительный тест. – Pointy