JavaScript{}
はオブジェクトです。[]
配列です。
var array = []
そしてvar array = new Array()
同じことをします。
配列はものの順序付けられたコンテナーであり、各値にはキーではなくインデックスがあります。
オブジェクトは名前付きのコンテナーであり、各「もの」にはキーがあります。
あなたarray
は間違いなくオブジェクトです。
var data = {};
data.name = $('[name="name"]').val();
data.username = $('[name="username"]').val();
data.password = $('[name="password"]').val();
alert(localStorage['accounts']);
// > undefined OR the value
local = JSON.parse(localStorage['accounts']);
// local contains a parsed version of localStorage['accounts']
localu = local.push(array);
// localu = 0 (push returns the length i think?)
alert(JSON.stringify(localu));
以下を試してください。私はそれをテストしていませんが、うまくいくかもしれません。
var data = {};
data.name = $('[name="name"]').val();
data.username = $('[name="username"]').val();
data.password = $('[name="password"]').val();
if (localStorage['accounts'] == undefined) { // fixed
// does the key exist? No so create something to get us started
localu = { accounts: [] };
} else {
// the key exists! lets parse it
localu = JSON.parse(localStorage['accounts']);
}
// add the new "data" to the list
localu.accounts.push(data);
// save the results (we have to stringify it)
localStorage['accounts'] = JSON.stringify(localu);