次のコードがあります
var s = storage('foo');
s.bar = 100;
storage('foo', s);
storage
一部のストレージ メディアからオブジェクトを返します。次に、オブジェクトの 1 つのプロパティの値を変更し、storage
再度送信します。私の質問は、それをワンライナーにする方法はありますか? 何かのようなもの
storage('foo', storage('foo').bar = 100);
ただし、上記のコードはオブジェクト100
全体ではなく保存のみを行いfoo
ます。
関数は次のstorage
とおりです。これは localstorage に保存しますが、文字列ストレージではなくオブジェクト ストレージにします。
function storage(item, value) {
if(value!=null) {
var result = (storage()) ? storage() : {};
if(item) result[item] = value;
return localStorage.setItem('storage', JSON.stringify(result))
} else return (item) ? storage()[item] : JSON.parse(localStorage.getItem('storage'));
}
編集:したがって、ストレージ関数で次の1行の変更を行うことになりました。しかし、これは多次元の使用を考慮していません。だから私はどんな提案も歓迎します。
function storage(item, value, property) {
...
if(item) (property) ? result[item][property] = value : result[item] = value;
...
}