Я создаю «поисковую систему», чтобы мой клиент мог получить доступ к некоторым документам на основе их категорий и идентификаторов. Для этого я фильтрую все доступные документы, поэтому я отображаю только те, которые соответствуют текущей странице (это может быть страница новостей, финансовая страница, страница событий и т. Д. c.)
Я столкнулся с ошибка и, к счастью, обнаружил, что была разница, которую я до сих пор не понимаю ...
CASE 1 Дает мне 113 результатов
const allDocuments = [{id: 1, ....}, {id: 2, ....}, {id: 3, ...}, ...]
const currentPageIds = [1, 2, 3]
const filteredDocuments = allDocuments.filter(document => {
// each document have one or more category ids
for(const categoryID of document.category_id) {
return currentPageIds.includes(categoryID)
}
})
CASE 2 Дает мне 134 результата
const allDocuments = [{id: 1, ....}, {id: 2, ....}, {id: 3, ...}, ...]
const currentPageIds = [1, 2, 3]
const filteredDocuments = allDocuments.filter(document => {
// each document have one or more category ids
for(const categoryID of document.category_id) {
if(currentPageIds.includes(categoryID)) {
return true
}
}
})
Насколько я понимаю, функция includes()
должна возвращать логическое значение, поэтому в моем примере, чем это отличается от возврата true внутри условное выражение?
Спасибо за помощь!