Por vezes, na interface das nossas aplicações VLSI , torna - se necessário "agrupar" algumas das entradas de uma determinada lista (por exemplo, mensagens de serviço no chat, contactos e chamadas telefónicas).
É bom se todos esses registros vierem de uma fonte, mas se eles vierem de serviços diferentes e com a navegação por cursor , o algoritmo de implementação se tornará muito não trivial.
Intencionalmente, não apresentarei a implementação "no código" aqui, mas descreverei uma abordagem exclusivamente algorítmica para a solução, de modo que, se necessário, você mesmo pode escalá-la para suas tarefas. Então...
Formulação do problema
Temos dois serviços. Poderia ser mais, mas seguindo a imagem anterior, vamos, por uma questão de clareza, ser os serviços de Chamadas e Contatos .
Obrigado aos colegas do CRM por uma tarefa interessante. Nesse ínterim, não há necessidade de se preocupar com isso. ”
, "" .
"" - , - , .
, , , , :
#1: " "
, -, - , . - .
" " , . "", ?
#2: " "
, ?.. (20 ) , "" , - .
, ( ) "" - ? , .
, ( ), . , "".
#1: " "
, , - - ( 20), - .
, - (merge ordered) (limit) "" .
, , "" 15 20 . 5 , " " - .
#3: "One Ring to rule them all"
? , - , . - , .
, " - , " - , .
#4: " server-side"
- , . , , .
stateless server-side , , - . , :
---
, ""
--
#2: " client-side"
, -, ?.. .
, " " (, , localStorage), .
- :
20 20
"" 5
5 "" + 15
5
20 - ? ! ( 20, "" )
" ", 25 20
Edge Cases
, - "" " ", "" .
, , : ", , , , !"