因此,基本上,我试图从中创建一些用户信息存储在本地存储中,并更新和删除我刚刚开始处理的用户信息,但被困于在本地存储中插入完整的用户数据。 每当我将用户数据存储到本地存储中时,都会得到(对象:对象)。
floatToBinary32
答案 0 :(得分:1)
对于将数据存储在本地存储中,记住只能存储字符串值非常重要。存储对象或数组(或对象数组)时,必须先将数据转换为JSON。
这很简单:
localStorage.setItem("record", JSON.stringify(data));
然后再次读取该值:
var record = JSON.parse(localStorage.getItem("record"));
如果不这样做,则Javascript将尝试使用toString()
方法对数据本身进行字符串化。对于对象,这意味着将存储值[object Object]
,而不是对象的实际内容。
而且看来您在混淆Javascript对象和数组。
这是一个对象:
{
firstName: "John"
ID: "10"
}
这是一个数组:
[10, 20, 30, 40, 50]
请注意,在定义对象时使用'{'和'}',在定义数组时使用'['和']'。还要注意,我们可以在对象中命名属性,而数组中不能包含命名属性。
对象数组如下所示:
[
{
firstName: "John"
ID: "10"
},
{
firstName: "Mary"
ID: "20"
}
]
答案 1 :(得分:0)
由于localStorage仅处理字符串,因此您需要按以下方式使用JSON.parse / JSON.stringify
<!-- language: lang-js -->
var aadTenantId = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
var aadClientId = 'yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyy'
var microsoftGraphScopes = [
"email",
"openid",
"offline_access",
"Calendars.Read"
]
microsoftGraphScopes = microsoftGraphScopes.join('%20');
var redirectURL = 'https://login.microsoftonline.com/common/oauth2/nativeclient';
var redirectURLEncoded = encodeURIComponent(redirectURL);
var aadEndpointURL = 'https://login.microsoftonline.com/' + aadTenantId + '/oauth2/v2.0/authorize?client_id=' + aadClientId + '&redirect_uri=' + redirectURLEncoded + '&scope=' + microsoftGraphScopes + '&response_type=token';
var webAuthenticationBroker = Windows.Security.Authentication.Web.WebAuthenticationBroker;
var webAuthenticationOptions = Windows.Security.Authentication.Web.WebAuthenticationOptions;
var webAuthenticationStatus = Windows.Security.Authentication.Web.WebAuthenticationStatus;
var aadEndpointURI = new Windows.Foundation.Uri(aadEndpointURL);
var redirectURI = new Windows.Foundation.Uri(redirectURL);
webAuthenticationBroker.authenticateAsync(webAuthenticationOptions.none, aadEndpointURI, redirectURI)
答案 2 :(得分:0)
localStorage将项目存储在字符串中,因此,在这种情况下,您应该这样做:
function myFunction(){
var fname = document.getElementById("fname").value;
var id = document.getElementById("id").value;
if (typeof(Storage) !== "undefined") {
// note: using {} ... person is an Object, not an Array
var person = {firstName: fname , ID : id };
// use JSON.parse to parse the string to an Object
var tempitem =JSON.parse(localStorage.getItem("record") || "[]");
// || [] so of it doesn't exist, returns an empty array to push to
tempitem.push(person);
// stringify the Object to store as a string
localStorage.setItem("record", JSON.stringify(tempitem));
}
}
,如果要从localStorage获取它,请执行以下操作:
localStorage.setItem("record", JSON.stringify(tempitem))