Olá Luan, tudo bem com você?
Você diz em substituir o:
this._listaNegociacoes.negociacoes.some
Por um outro filter?
Neste caso não, porque quando utilizamos o filter
passamos um filtro que para cada elemento irá aplicar o teste e devolver um valor booleano para saber se esse elemento estará presente ou não no array de resultados :)
Se trocássemos por um filter, na verdade iriamos retornar ou um array vazio, ou com elementos, e não é isso que queremos, o objetivo é ter um valor true
ou false
E isso emenda a resposta da sua pergunta:
,como que no proximo then possui o array com os diferentes
Vamos supor que temos:
listaDeNegociacoes = [ "Negociacao:1", "Negociacao:2", "Negociacao:3"]
negociacoes = ["Negociacao:5", "Negociacao:2", "Negociacao:1"]
`
E ai fariamos:
negociacoes.filter( negociacao => {
return ! ( listaDeNegociacoes.some( negocio => negocio === negociacao))
})
Então teriamos na primeira iteração:
negociacao = "Negociacao:5"
Resultado do Some = Iriamos ver que o valor não está presente na lista e devolveriamos false, entretanto temos o ! no começo, portanto true
Quando o teste lógico do filter da true
ele é adicionado no array de resultado, então:
Resultado do Filter: [ "Negociacao:5"]
---------------------------------------------------------------------------
Segunda iteração:
negociacao = "Negociacao:2"
Resultado do Some = Temos esse valor na lista, então o retorno do some
é true, entretanto com o !
vai para false
Como deu false ele não é adicionado no resultado do filter
---------------------------------------------------------------------------
Última iteração:
negociacao = "Negociacao:1"
Resultado do Some = Iriamos ver que o valor não está presente na lista, com a negação do !
iria para true, então adicionamos também na lista:
Resultado do Filter: [ "Negociacao:5", "Negociacao:1"]
---------------------------------------------------------------------------
Então o array do próximo do then
é o resultado do filter
e não a resposta do teste lógico do some
, esse será utilizada pelo filter para definir se o elemento estará presente ou não no array de resultados
Conseguiu compreender?
Abraços e Bons Estudos!