Накратко
filter() запазва елементите, които изпълняват условие. Резултатът може да е по-кратък от входа или да бъде празен.
Полезно е да знаеш
Когато искаш само записите, отговарящи на условие, filter() връща нов масив с тях. Функцията трябва да върне стойност, тълкувана като истина, за елементите, които да останат. Няма добавени празни места за отхвърлените записи. [1]
Например const quantities = [0, 3, 0, 8]; const available = quantities.filter(quantity => quantity > 0); дава [3, 8]. Това е условен пример за наличности. Ако всички стойности са нула, резултатът е [], а не null или масив от нули.
Методът прави плитко копие на избраната част. Ако елементите са обекти, те не се превръщат автоматично в независими копия. Промяната на свойство на избран обект може да се вижда и през първоначалния списък. [1]
Преди да го използваш, определи дали търсиш всички съвпадения или само първото. За първото find() изразява намерението по-точно; за списък от всички подходящи записи filter() е естественият избор.
Източници
За повече подробности и проверка на информацията: