![](/img/trans.png)
[英]localstorage.getItem shows only one data although there is more than one data in the array
[英]Adding more than one localStorage Array to an normal Array
大家好,我有一个问题。 我已经制作了一个日历,并且一切正常,但是最后一个要求是通过localStorage
添加日期。
所以我的问题是:如何在不覆盖第一个日期的情况下添加更多日期?
我正在考虑取出数据,添加新的testObject
,然后将其放回localStorage
。 唯一的事情是我不知道如何去做。
我希望有人能帮帮忙。 (我是一个初学者)
简而言之,我想通过localStorage
将多个数组放入events
数组中。
这是我的代码:
<script language="JavaScript" type="text/javascript" >
testObject = ["Y", prompt("maand"), prompt("dag"), "2000", prompt("test"), prompt("test")]
retrievedObject = localStorage.getItem('testObject');
// Put the object into storage
localStorage.setItem('testObject', JSON.stringify(testObject))
events = new Array(
JSON.parse(retrievedObject),
["Y", "1", "1", "2000", "Nieuw jaars dag", "De eerste dag van het nieuw Jaar"],
["Y", "7", "3", "2000", "Mijn verjaardag", "beste dag van het jaar"],
["Y", "17", "10", "2000", "Inleverdag", "Ergste dag van het jaar."]
);
</script>
编辑:添加2个数组后,它应该像这样工作,但是应该从本地存储中检索较高的2个值,如果添加另一个,则应该是本地存储中的3个数组。 但是本地存储每次都会覆盖自身,所以目前我只能添加1个数组
events = new Array(
["Y", "1", "2", "2000", "test", "test"],
["Y", "2", "4", "2000", "test2", "test3"],
["Y", "1", "1", "2000", "Nieuw jaars dag", "De eerste dag van het nieuw Jaar"],
["Y", "7", "3", "2000", "Mijn verjaardag", "beste dag van het jaar"],
["Y", "17", "10", "2000", "Inleverdag", "Ergste dag van het jaar."]
);
我认为您的措辞令人困惑,您询问如何将数据添加到数组,但是您提供的代码示例根本不做任何添加。
我认为您的Array.prototype.push
是Array.prototype.push
和Array.prototype.concat
。
为了展示和举例,我将对您想做的事情做出以下假设:
// Helper to easily create a new test object
function buildTestObject() {
return [
'Y',
prompt('maand'),
prompt('dag'),
'2000',
prompt('test'),
prompt('test')
];
}
// Pull in the old value from localStorage
var retrievedObject = localStorage.getItem('testObjects') || '[]';
try {
// Turn JSON into JS Object
retrievedObject = JSON.parse(retrievedObject);
} catch (e) {
retrievedObject = [];
}
// Actually add a testObject to the array which will be stored in localStorage
retrievedObject.push(buildTestObject());
// Save the now mutated array of testObjects back into localStorage
localStorage.setItem('testObject', JSON.stringify(retrievedObject))
var events = retrievedObject.concat(
["Y", "1", "1", "2000", "Nieuw jaars dag", "De eerste dag van het nieuw Jaar"],
["Y", "7", "3", "2000", "Mijn verjaardag", "beste dag van het jaar"],
["Y", "17", "10", "2000", "Inleverdag", "Ergste dag van het jaar."]
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.