Qual método de array em JavaScript retorna um novo array com todos os elementos que passam em um teste (função fornecida), sem alterar o array original?