Bom dia pessoal,
Sou um estudante de Front End (Ainda estou no inicio de POO em Js e ainda não dominei algumas funções avançadas da linguagem) com muita vontade de aprender e pesquisar, essa é a minha primeira postagem no fórum da Alura, sinta-se a vontade para dizer que não pesquisei o suficiente(se for o caso). Vou dar um breve contexto de como está minha ideia:
Esta é o meu primeiro projeto e irei me basear no CRUD abaixo, pretendo criar um Sistema de Gerenciamento de um Restaurante, no qual irei salvar os Objetos Cliente dentro do Array 'db_client', salvando ele no localstorage.
//Retornar o Array salvo no localstorage
const getLocalStorage = () => JSON.parse(localStorage.getItem('db_client')) ?? []
//Salvar o Array no localstorage
const setLocalStorage = (dbClient) => localStorage.setItem("db_client", JSON.stringify(dbClient))
// CRUD - create read update delete
//Delete
const deleteClient = (index) => {
const dbClient = readClient()
dbClient.splice(index, 1)
setLocalStorage(dbClient)
}
//Update
const updateClient = (index, client) => {
const dbClient = readClient()
dbClient[index] = client
setLocalStorage(dbClient)
}
//Read
const readClient = () => getLocalStorage()
//Create
const createClient = (client) => {
const dbClient = getLocalStorage()
dbClient.push (client)
setLocalStorage(dbClient)
}
Minha ideia/dúvida: Cada Cliente irá ter uma posição no Array, correto? 0, 1, 2... etc. Eu quero fazer um Front, onde a cada Cliente criado, ele se associe a um "Card" escrito Mesa 0,1,2,3... etc E a numeração da Mesa, esteja associada a posição do Array. Porém no meu Código, eu estou manipulando o Array através da variável "index" que estou digitando manualmente. Ex.: updateCliente(1, cliente)
Que abstração posso fazer para tornar essa ação de digitar o "index" manualmente, em algo automatizado? Automatizado no exemplo de: Na ação do usuário ao clicar em "Inserir/Salvar Mesa", o número da Mesa ser o mesmo da posição do Cliente no Array 'db_client'?
Por favor, alguém me dê alguma luz sobre essa abstração que precisa ser feita sobre o Index, porque se eu desejo automatizar tudo, esse index vai interferir tanto nessa questão da Mesa, quanto no update/delete do CRUD. Me digam se é possível fazer isso. Me indiquem links, materiais sobre, fico grato desde já.
Atenciosamente, Igor