Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Chrome扩展中的存储阵列_Javascript_Json_Google Chrome_Local Storage - Fatal编程技术网

Javascript Chrome扩展中的存储阵列

Javascript Chrome扩展中的存储阵列,javascript,json,google-chrome,local-storage,Javascript,Json,Google Chrome,Local Storage,我目前正在制作一个Chrome扩展,我正处于它的最后阶段,存储用户的首选项。 我知道本地存储将存储字符串,在这一阶段,我只使用字符串是有点困难的,但是随着存储需求的增加,需要一个二维数组。我已经看到,本地存储无法存储阵列,但可以使用JSON。我从未使用过JSON,在查看示例时,我不知道如何使用JSON for (i=1;i<=localStorage["totalwebsites"];i++) { // Get the title of the current item

我目前正在制作一个Chrome扩展,我正处于它的最后阶段,存储用户的首选项。
我知道本地存储将存储字符串,在这一阶段,我只使用字符串是有点困难的,但是随着存储需求的增加,需要一个二维数组。我已经看到,本地存储无法存储阵列,但可以使用JSON。我从未使用过JSON,在查看示例时,我不知道如何使用JSON

for (i=1;i<=localStorage["totalwebsites"];i++) {
        // Get the title of the current item
        var title = localStorage["websitetitle" + i];
        // Create the new context menu item, and get its menuItemId to store in the right localStorage string
        var menuItemId = chrome.contextMenus.create({parentId: ParentID, title: title, contexts:["selection"], onclick: searchFromContext});
        // Store the created menu items menuItemId in the array so we know which item was chosen later on
        websitesarray[menuItemId] = localStorage["websiteurl" + i];
    }

for(i=1;i别担心,JSON非常简单!假设您的网站存储在
websitesarray

// To load:
websitesarray = JSON.parse(localstorage.websites);

// To store:
localstorage.websites = JSON.stringify(websitesarray);

请确保您有一个合理的方法来处理
localstorage.websites
尚未设置的情况,因为
JSON.parse
的输入为空时会引发问题。

别担心,JSON非常简单!假设您的网站存储在
websitesarray

// To load:
websitesarray = JSON.parse(localstorage.websites);

// To store:
localstorage.websites = JSON.stringify(websitesarray);

确保你有一个合理的方法来处理
localstorage.websites
尚未设置的情况,因为
JSON.parse
的输入是空的,它会抛出一个错误。

所以,我要说的是,这些项将按照它们添加的顺序存储在数组中?如果是这样,那就太棒了。最后一件事,这是多维的吗我可以将menuItemId、title和url存储在同一行中,这样我就可以使用
menuItemId=websitesarray[0,1];
title=websitesarray[1,1];
url=websitesarray[1,2]
对于第一项?不,这只是一种将数组转换为字符串或从字符串转换为字符串的方法,因此可以将数组存储在单个
localstorage
插槽中。JavaScript不直接支持多维数组,因此您仍然需要为其提供单独的解决方案。(最干净的解决方案:对象。最简单的解决方案:标题、URL和ID的单独数组。)感谢您的快速回复。现在,我将有3个数组(我想看看用户是否需要),然后我会用对象来清理一下。再一次,谢谢你,祝你有一个愉快的一天。所以,我要说的是,这些项目将按照它们添加的顺序存储在数组中?如果是这样,那就太棒了。最后一件事,这是多维的吗,这样我就可以将menuItemId、title和url存储在同一行中?这样我就可以使用
menuIte了mId=websitesarray[0,1];
title=websitesarray[1,1];
url=websitesarray[1,2]
对于第一项?不,这只是一种将数组转换为字符串或从字符串转换为字符串的方法,因此可以将数组存储在单个
localstorage
插槽中。JavaScript不直接支持多维数组,因此您仍然需要为其提供单独的解决方案。(最干净的解决方案:对象。最简单的解决方案:标题、URL和ID的单独数组)感谢您的快速回复。现在,我将有3个数组(我想看看用户是否需要),然后我将使用对象稍微清理一下。再一次,谢谢您,祝您度过愉快的一天。