首页 > 解决方案 > 检查 sessionStorage 中的多个键的条件

问题描述

我需要检查 sessionStorage 中的 3 个键是否等于已完成。是否有 sessionStorage 的内置参数或函数允许我检查 3 个键是否等于已完成。以下是我尝试过的一些示例。

第一个示例小而干净,但我认为我一次不能拉出超过 1 个键,因此代码会中断。

if (sessionStorage.getItem("lessonOne", "lessonTwo", "lessonThree") === "completed") {
        SetSCOComplete();
    } else {
        alert("Course not complete");
}

我也尝试过遍历数组,但这似乎效率不高。

for (var i = 0; i < sessionStorage.length; i++) {

    var key = sessionStorage.key(i);

    var value = sessionStorage.getItem(key);

    console.log('Key: ' + key + ', Value: ' + value);

    var num_matches = value.match(/d/gi).length;

    if (num_matches <= 3) {
            SetSCOComplete();
        } else {
            alert("Course not complete");
        }
    }
}

如果有更好的方法来处理这个问题,我想了解更多关于这些选项的信息。提前致谢。

标签: javascripthtml

解决方案


制作一组需要完成的课程并将其传递到Array.every中检查 sessionStorage 的位置。

var courseComplete = ["lessonOne", "lessonTwo", "lessonThree"].every(
  lesson => sessionStorage.getItem(lesson) == "completed"
);

console.log(courseComplete); // true or false

推荐阅读