你可以利用內置的shift
和push
方法:
shift
:它刪除數組中最後一個元素
push
:它增加了一個或多個元素的結束陣列
的第一次請求一個頁面,保存對象的數組,並把它放在你的localStorage
:
var items = [{ 'url': window.location.href, 'location': 'Japan', 'desc': 'some brief description text' }];
localStorage.setItem('testObject', JSON.stringify(items));
在正在進行的呼叫,測試陣列的length
和shift
或push
新的相應的項目:
var items = JSON.parse(localStorage.getItem('testObject'));
if(items.length === 3) {
items.shift(); //the first item in the array is removed. So length is 2
}
items.push(your new item); //length is 3
最後保存新項目到存儲:
localStorage.setItem('testObject', JSON.stringify(items));
你可以創建一個find
方法來尋找你需要的工作:
var find = function(arr, url) {
return arr.filter(function(el) {
return el.url === url;
})[0];
}
var item = find(items, 'http://url.com');
請注意,localStorage
是ECMAScript第5版的一部分。因此,爲不支持它的瀏覽器提供一個polyfill。如果需要跨瀏覽器兼容性,請確保存在移位和推送(儘管非常標準的方法)。
見Mozilla的MDN有關數組的更多信息:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array
謝謝,雖然我不知道如何拔出一次存儲特定的值 - 我認爲我需要得到內的對象的url陣列?: retrievedObject:[陣列[1],陣列[1],陣列[1]] 0:數組[1] 0:對象 遞減: 「desc」 的 ID: 「46」 位置:「日本「 其他:」更多文字「 ... – JPMox
查看我的更新回答 – roland
http://jsfiddle.net/mUUpD/ 也許我做錯了什麼(這絕對是啤酒 - 時鐘) - 我得到undefined – JPMox