C'è un consenso tra i programmatori (o una convenzione comune) sulla "strada giusta" per occuparsi dell'aggiunta o dell'eliminazione di uno o più elementi di una matrice dinamica (mutabile) in fase di esecuzione mentre si gestiscono con garbo le modifiche ai riferimenti a gli altri elementi?
Ad esempio all'interno di un ciclo in JavaScript, per rimuovere alcuni elementi
- si usa delete () per sostituire gli elementi con 'undefined' mantenendo inalterata la lunghezza dell'array, in modo che i riferimenti agli altri elementi non siano cambiati?
- Oppure slice () o splice (x, 1) la matrice e quindi in qualche modo aggiornare tutti i riferimenti correnti?
- Oppure fai una copia dell'array all'inizio di una chiamata di funzione, ad esempio, quindi usa delete () mentre sei ancora in quella funzione, quindi al termine usa filter () per rimuovere gli spazi indefiniti e poi scrivi che torna indietro all'oggetto originale?
Cosa succede se più di un utente o thread sta tentando di accedere a questo array contemporaneamente? L'unica scelta è un meccanismo di blocco per le scritture? O forse la risposta è semplicemente "dipende solo da ciò che vuoi / hai bisogno di fare".
Grazie in anticipo per le tue opinioni.