Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.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 HTML5上设置项目限制_Javascript_Html_Storage_Local - Fatal编程技术网

如何在本地存储项目Javascript HTML5上设置项目限制

如何在本地存储项目Javascript HTML5上设置项目限制,javascript,html,storage,local,Javascript,Html,Storage,Local,我试图将6个项目限制为localstorage,并将这些项目检索回来。例如,如果用户在id为#gsc-i-id2的输入框中键入数据并单击.gsc-search-button-v2,数据将存储在localstorage中,这一切都可以正常工作,但我想在我尝试使用的代码中限制为最近的6个输入。shift,但我对localstorage和js非常陌生,我不确定我在这里做错了什么。它只显示6个项目,但不会把项目弄糟。任何帮助都将不胜感激 (函数(){ var propertiesList=docume

我试图将6个项目限制为localstorage,并将这些项目检索回来。例如,如果用户在id为#gsc-i-id2的输入框中键入数据并单击.gsc-search-button-v2,数据将存储在localstorage中,这一切都可以正常工作,但我想在我尝试使用的代码中限制为最近的6个输入。shift,但我对localstorage和js非常陌生,我不确定我在这里做错了什么。它只显示6个项目,但不会把项目弄糟。任何帮助都将不胜感激

(函数(){
var propertiesList=document.getElementById('list');
var-myProperties;
var-obj;
if(window.localStorage.getItem('Address')){
显示存储();
}
//用于在页面加载时显示本地存储内容的函数
函数displayStorage(){
var数据=”;
myProperties=JSON.parse(localStorage.getItem('Address');
//如果本地存储阵列不为空
如果(myProperties.length!==0){
对于(var i=0;i5){
myProperties.shift(li);
}否则{
propertiesList.appendChild(li);
}
}
}());

搜索

我理解这个问题。如果您只想打印最新的5个地址,则可以尝试以下方法:

if(len>5){
for(var j = len; j>= len - 5; j++){
.... // Write here what you want to do with the last five values
     }
}

我知道您只想在localstorage上保存6个最近的项目

由于您不能直接在localstorage上设置规则,因此我建议您在这种情况下如何在localstorage上保存数据:

  • 向数组中添加项后,请检查数据数组的长度
  • 如果数组长度超过6,请删除数组的第一项
  • 将阵列数据保存在localstorage上
  • 我提供了上述过程的代码片段

       // add code here for adding an item to the array
    
       if(exceedsPropertiesLengthLimit(myProperties)) {
           myProperties.shift();
       }
    
       // add code here for saving the array data on localstorage
        
       function exceedsPropertiesLengthLimit(properties) {
            let limitLength = 6;
            let exceedsLimit = false;
    
            if(properties.length > limitLength) {
                exceedsLimit = true;
            }
            return exceedsLimit;
        }
    

    请将您的HTML作为共享文件共享。谢谢。我建议您将DOM操作代码和与localstorage交互的代码分开。这将使代码对那些看你问题的人来说更具可读性!谢谢,我添加了最小的html,但我不确定如何将其分离用于DOM操作,因此我在github repo上查看了一个将本地存储方法组织到每个函数中的示例。这将帮助您将本地存储操作与DOM操作分离。感谢您的帮助,但我似乎无法准确地将代码放置在我的代码中以使其正常工作?我认为应该将其插入
    myProperties.push(obj)
    之后的行中,如果您在该行中向数组添加项目的话。祝你好运非常感谢库塔,这正是我想要的:)