Necesito eliminar la clave de objeto de la variable de objeto localStorage sin eliminar la clave de localStorage
let obj = localStorage; let keys = Object.keys(localStorage).sort(function(a, b) {return a - b;}); for(let i = 0; i < keys.length; ++i){ if (isNaN(keys[i])) { delete obj[keys[i]]; keys.splice(i,1); } }el código anterior elimina la clave de objeto no numérico de la variable obj , pero también la clave se elimina de localStorage
¿Cómo eliminar la clave de la variable del objeto localStorage y mantener esa clave en localStorage?
Lo que está haciendo aquí es copiar la referencia del objeto localStorage y trabajar en el propio localStorage. Lo que puede hacer es en lugar de obtener localStorage de esta manera:
const obj = localStorage;Hazlo así:
const obj = {...localStorage};Entonces, lo que estás haciendo aquí es copiar el objeto por valor y no por referencia.
Problema resuelto mediante el uso de Object.values (localStorage) y obj.slice (i,1) en lugar de "eliminar" ahora puedo eliminar de forma segura las claves de la variable obj sin eliminar las claves de almacenamiento local y también puedo obtener obj.length.
let obj = Object.values(localStorage), keys = Object.keys(localStorage).sort(function(a, b) {return a - b;}); for(let i = 0; i < keys.length; ++i){ if (isNaN(keys[i])) { keys.splice(i,1); obj.splice(i,1); } }