检索在JavaScript的localStorage最后的关键(retrieving last ke

2019-10-30 03:39发布

我做一个单任务,所以请原谅这里的coplete知识的缺乏。 我一直负责创建需要我,他们已经完成了所有细节后,开一张发票“客户”一个基于Web的应用程序,到目前为止,我的形式工作正常,我可以保存没有问题的localStorage和甚至可以检索我想要的格式的信息。

问题是,如果我有多个“订单比我只能检索保存到localStorage的第一串和我无法弄清楚如何使它显示最新/最后一个。

关键是从日期推导我们不得不假设订单大量几乎随机生成的号码。 我附上下面的代码,所以如果有人可以帮助我将不胜感激。 我也不能使用jQuery或JSON之类的东西。 我们被告知我们不能使用这些。 我也不能使用服务器(PHP等)。

感谢史蒂夫

<script>
var i = 0;

var itemKey = localStorage.key(i);
var values = localStorage.getItem(itemKey);
values = values.split(";");
var name = values[0];
var company = values[1];
var contactnumber = values[2];
var email = values[3];
var address1 = values[4];
var address2 = values[5];
var suburb = values[6]
var postcode = values[7];
var comments = values[8];
var bags = values[9];
var distance = values[10];
var hdelivery_fee = values[11];
var hprice = values[12];
var htotal_notax = values[13];
var hgst = values[14];
var htotal_tax = values[15];
var hordernumber  = values[16];


document.write('Name: ' + name + '<br />');
document.write('Company: ' + company + '<br />');
document.write('Contact: ' + contactnumber + '<br />');
document.write('Email; ' + email + '<br />');
document.write('Address; ' + address1 + '<br />');
document.write('Address; ' + address2 + '<br />');
document.write('Suburb; ' + suburb + '<br />');
document.write('Postcode; ' + postcode + '<br />');
document.write('Comments; ' + comments + '<br />');
document.write('Number of Bags; ' + bags + '<br />');
document.write('Distance; ' + distance + '<br />');
document.write('Delivery Fee; $' + hdelivery_fee + '<br />');
document.write('Price of Bags; $' + hprice + '<br />');
document.write('Total Ex-GST; $' + htotal_notax + '<br />');
document.write('GST; $' + hgst + '<br />');
document.write('Total Inc GST; $' + htotal_tax + '<br />');
document.write('hordernumber; ' + hordernumber + '<br />');


</script>

Answer 1:

为了显示数组的最后一个值,应使用值[values.length-1]。

这将保证您得到绝对的最后一个。



Answer 2:

简单的放

var itemKey = localStorage.key(i);
var values = localStorage.getItem(itemKey); in a loop and increement i each time.


Answer 3:

你可以尝试这样的事情

var localStorageKeys = Object.keys(localStorage);

getOrder(localStoragesKeys[localStoragesKeys.length-1]);

function getOrder(itemKey) {
    var values = localStorage.getItem(itemKey);
    values = values.split(";");
    var name = values[0];
    var company = values[1];
    var contactnumber = values[2];
    var email = values[3];
    var address1 = values[4];
    var address2 = values[5];
    var suburb = values[6]
    var postcode = values[7];
    var comments = values[8];
    var bags = values[9];
    var distance = values[10];
    var hdelivery_fee = values[11];
    var hprice = values[12];
    var htotal_notax = values[13];
    var hgst = values[14];
    var htotal_tax = values[15];
    var hordernumber  = values[16];


    document.write('Name: ' + name + '<br />');
    document.write('Company: ' + company + '<br />');
    document.write('Contact: ' + contactnumber + '<br />');
    document.write('Email; ' + email + '<br />');
    document.write('Address; ' + address1 + '<br />');
    document.write('Address; ' + address2 + '<br />');
    document.write('Suburb; ' + suburb + '<br />');
    document.write('Postcode; ' + postcode + '<br />');
    document.write('Comments; ' + comments + '<br />');
    document.write('Number of Bags; ' + bags + '<br />');
    document.write('Distance; ' + distance + '<br />');
    document.write('Delivery Fee; $' + hdelivery_fee + '<br />');
    document.write('Price of Bags; $' + hprice + '<br />');
    document.write('Total Ex-GST; $' + htotal_notax + '<br />');
    document.write('GST; $' + hgst + '<br />');
    document.write('Total Inc GST; $' + htotal_tax + '<br />');
    document.write('hordernumber; ' + hordernumber + '<br />');
}


Answer 4:

如果必须使用localStorage ,不能使用任何客户端数据库,那么我会保存就象是一把钥匙每个条目new Date().getTime()与在它前面的一个已知的字符串,让你有key-1368910344400

当您需要检索的最后一项,那么你可以这样做:

var keys = Object.keys(localStorage);
keys = keys.map(function(key) {
  // check if the current key matches match "key-"
  // if that's the case create a new Date object with the ms obtained by a split
  // return the Date
});

// sort keys and take the most recent

这通常是一个不错的选择,但据我所知你与选择的限制,所以你要舒展事情有点。

如果你可以使用支持HTML5和浏览器webdb则只是把localStorage路程,去为:d,这里有一个例子: http://www.html5rocks.com/en/tutorials/webdatabase/todo/



文章来源: retrieving last key in javascript localstorage