storage(key,val)
/**
* localStorageにJSON化して Get & Set
* keyにnull、valにkeyを設定すれば Remove
*/
function storage(key, val) {
var v = JSON.parse(localStorage.getItem(
(key === null) ? val : key
));
if (key === null)
localStorage.removeItem(val);
else if (arguments.length >= 2)
localStorage.setItem(key, JSON.stringify(val));
return v;
}
Array#popは削除してなおかつ削除した値を返すので、これもそんな感じにしたかった。
SetするときもRemoveするときも必ず元の登録されていた値を返します。
// Get & Set
storage('foo', 'bar'); // null
// Get
storage('foo'); // 'bar'
// Get & Remove
storage(null, 'foo'); // 'bar'
// Get
storage('foo'); // null