【问题标题】:Adding more than one localStorage Array to an normal Array将多个 localStorage Array 添加到普通 Array
【发布时间】:2014-11-01 00:56:57
【问题描述】:

大家好,我有一个问题。我制作了一个日历,一切正常,但最后一个要求是通过localStorage 添加日期。

所以我的问题是:如何在不覆盖第一个日期的情况下添加更多日期?
我正在考虑将数据取出,添加新的testObject,然后将其放回localStorage。唯一的事情是我不知道该怎么做。

我希望有人可以提供帮助。 (我是个初学者)

简而言之,我想通过localStorage 将多个数组放入events-array。


这是我的代码:

<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."]
    );

【问题讨论】:

  • events 的值是多少?您可以编辑问题并输出您希望看到的计算值吗?
  • 我在我希望看到的内容上进行了编辑。

标签: javascript html arrays local-storage


【解决方案1】:

我认为混淆在于您的措辞,您询问如何将数据添加到数组中,但您提供的代码示例根本没有进行任何添加。

我想你追求的是Array.prototype.pushArray.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."]
);

【讨论】:

  • 这只有助于解决一个问题,列表中已经存在的事件停止工作,知道为什么吗?
  • 我修好了谢谢谢谢!因为你,我在学校完成了课程
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-12-07
  • 2013-11-10
  • 1970-01-01
  • 1970-01-01
  • 2011-03-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多