Javascript 我想从localstorage中删除特定对象
通常有一个函数localstorage.remove(key)。但是我想删除一个键中的索引。 我这样保存对象:Javascript 我想从localstorage中删除特定对象,javascript,arrays,json,object,local-storage,Javascript,Arrays,Json,Object,Local Storage,通常有一个函数localstorage.remove(key)。但是我想删除一个键中的索引。 我这样保存对象: cart[idstr] = [qty, name]; localStorage.setItem('cart', JSON.stringify(cart)); 我想删除特定的购物车[idstr] 示例console.log(购物车)给出: {pr22: Array(2), pr19: Array(2), pr21: Array(2)} 假设我想删除pr19。我该怎么办?您需要反序列
cart[idstr] = [qty, name];
localStorage.setItem('cart', JSON.stringify(cart));
我想删除特定的购物车[idstr]
示例console.log(购物车)
给出:
{pr22: Array(2), pr19: Array(2), pr21: Array(2)}
假设我想删除pr19。我该怎么办?您需要反序列化、修改并重新保存该项目 请记住,
localStorage
是一个用于字符串的简单键/值存储:它不提供任何方法来操作这些存储字符串的内容(您甚至不需要存储JSON,您可以在localStorage
中存储YAML、XML或Base64编码的任意二进制数据)
像这样:
function storeCart( cart ) {
localStorage.setItem( 'cart', JSON.stringify( cart ) );
}
/** Returns 'true' if the specified key/value was removed from the stored cart object - otherwise 'false'. */
function deleteItemFromStoredCart( key ) {
const cartString = localStorage.getItem( 'cart' );
if( !cartString ) return false;
try {
const cart = JSON.parse( cartString );
if( !( key in cart ) ) return false;
delete cart[ key ];
storeCart( cart );
return true;
}
catch( err ) {
console.log( "Error: ", err );
return false;
}
}
您需要反序列化、修改和重新保存该项
请记住,localStorage
是一个用于字符串的简单键/值存储:它不提供任何方法来操作这些存储字符串的内容(您甚至不需要存储JSON,您可以在localStorage
中存储YAML、XML或Base64编码的任意二进制数据)
像这样:
function storeCart( cart ) {
localStorage.setItem( 'cart', JSON.stringify( cart ) );
}
/** Returns 'true' if the specified key/value was removed from the stored cart object - otherwise 'false'. */
function deleteItemFromStoredCart( key ) {
const cartString = localStorage.getItem( 'cart' );
if( !cartString ) return false;
try {
const cart = JSON.parse( cartString );
if( !( key in cart ) ) return false;
delete cart[ key ];
storeCart( cart );
return true;
}
catch( err ) {
console.log( "Error: ", err );
return false;
}
}
尝试将购物车对象保存为临时变量,从本地存储中删除购物车,然后从临时存储中删除索引并将其重新添加到本地存储中。
即:
尝试将购物车对象保存为临时变量,从本地存储中删除购物车,然后从临时存储中删除索引并将其重新添加到本地存储中。
即:
我建议获取数据,删除对象,然后重置它
var cart = localStorage.getItem('cart');
cart = cart ? JSON.parse(cart) : {};
delete cart['pr19'];
localStorage.setItem('cart', JSON.stringify(cart));
我建议获取数据,删除对象,然后重置它
var cart = localStorage.getItem('cart');
cart = cart ? JSON.parse(cart) : {};
delete cart['pr19'];
localStorage.setItem('cart', JSON.stringify(cart));
直接做这件事是不可能的
- 首先,您必须从存储器中获取已保存的项目
- 删除此项目所需的属性
- 更新存储中的项目
直接做这件事是不可能的
- 首先,您必须从存储器中获取已保存的项目
- 删除此项目所需的属性
- 更新存储中的项目
试试这个
delete localStorage.cart[idstr]
试试这个
delete localStorage.cart[idstr]
对于localstorage中的设置值:
只有一个字段直接写入=>localStorage.setItem('id',2);
对于对象直接写入=>localStorage.setItem('object',JSON.stringify(object));
要从本地存储获取值,请执行以下操作:
只有一个字段直接写入=>localStorage.getItem('id');
对于对象直接写入=>JSON.parse(localStorage.getItem(“对象”))
对于localstorage中的移除值:=>localstorage.removietem('id');
对于localstorage中的设置值:
只有一个字段直接写入=>localStorage.setItem('id',2);
对于对象直接写入=>localStorage.setItem('object',JSON.stringify(object));
要从本地存储获取值,请执行以下操作:
只有一个字段直接写入=>localStorage.getItem('id');
对于对象直接写入=>JSON.parse(localStorage.getItem(“对象”))
对于localstorage中的remove值:=>localstorage.removeItem('id'))
这能回答您的问题吗?这能回答您的问题吗?如果localStorage
中不存在temp
,则此代码将失败,并出现运行时错误
——调用localStorage.setItem
也会失败,因为您传递的是对象,而不是字符串l如果localStorage
中不存在temp
,则会出现运行时Error
-对localStorage的调用也会失败。setItem
将失败,因为您传递的是对象,而不是字符串
。此代码根本不起作用:localStorage
是Storage
类型的对象,而不是具有隐式属性(正如我在回答中解释的,localStorage
仅存储string
值,而不是object
值,因此必须反序列化和重新序列化对象)。此代码根本不起作用:localStorage
是类型为Storage
的对象,它没有隐式属性(正如我在回答中所解释的,localStorage
只存储string
值,而不是object
值,因此必须对对象进行反序列化和重新序列化)。