Que boa prática deveria implementar para encontrar que existem 2 parcelas iguais de 5187,66 e saber a que parcela corresponde (que seria parcela 4 e 10)?
O problema é que não sei o valor das parcelas que são iguais…no exemplo que te dei sabemos porque tive que exemplificar. Mas esse valores são dinâmicos. Além disso, precisaria saber quantas vezes se repete as parcelas de 821.39 (como comentei anteriormente os valores dessas parcelas são dinâmicos).
A resposta que precisaria chegar seria:
São 8 parcelas de 821,39 e 2 parcelas de 5187,66, nos meses 4 e 10.
hugokotsubo1 like
Nesse caso você tem que agrupar por valor. E para cada valor, criar um array de meses:
constparcelas_financiamento={"1":821.39,"2":821.39,"3":821.39,"4":5187.66,"5":821.39,"6":821.39,"7":821.39,"8":821.39,"9":821.39,"10":5187.66,}constresult={};for(const[mes, valor]ofObject.entries(parcelas_financiamento)){//paracadavalor,criaumarraycontendoosmesesif(!result[valor])result[valor]=[];result[valor].push(mes);}//------------------ Mostrar os valores e respectivos meses//NumberFormatésópramostrarovalorformatadocomomoeda(opcional,claro,dependedoquevocêquer)constformato=newIntl.NumberFormat('pt-BR',{style:'currency',currency:'BRL'});//supondovaloresemreaisfor(const[valor, meses]ofObject.entries(result)){console.log(`${meses.length}parcelasde${formato.format(valor)}nosmeses:${meses.join(", ")}`);}
J
janile
Neste caso o ESLint não recomenda a utilização do for - of.
iterators/generators require regenerator-runtime, which is too heavyweight for this guide to allow them. Separately, loops should be avoided in favor of array iterations.
hugokotsubo1 like
Ué, é só trocar por um for tradicional:
constparcelas_financiamento={"1":821.39,"2":821.39,"3":821.39,"4":5187.66,"5":821.39,"6":821.39,"7":821.39,"8":821.39,"9":821.39,"10":5187.66,}constresult={};varentries=Object.entries(parcelas_financiamento);for(vari=0;i<entries.length;i++){//paracadavalor,criaumarraycontendoosmesesconstmes=entries[i][0];constvalor=entries[i][1];if(!result[valor])result[valor]=[];result[valor].push(mes);}//------------------ Mostrar os valores e respectivos meses//NumberFormatésópramostrarovalorformatadocomomoeda(opcional,claro,dependedoquevocêquer)constformato=newIntl.NumberFormat('pt-BR',{style:'currency',currency:'BRL'});//supondovaloresemreaisentries=Object.entries(result);for(vari=0;i<entries.length;i++){varvalor=entries[i][0];varmeses=entries[i][1];console.log(`${meses.length}parcelasde${formato.format(valor)}nosmeses:${meses.join(", ")}`);}