检查sessionStorage中的多个键是否有条件

时间:2019-05-22 18:35:00

标签: javascript html

我需要检查sessionStorage中的3个键是否等于完成。是否有sessionStorage的内置参数或功能,可以让我检查3个键是否相等。这是我尝试过的一些例子。

第一个示例小巧干净,但是我认为我一次不能拉多个键,这样代码就会中断。

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");
        }
    }
}

如果有更好的方法可以解决此问题,我想进一步了解这些选项。预先感谢。

2 个答案:

答案 0 :(得分:3)

整理一系列需要完成的课程,并将其传递到Array.every中,在其中检查sessionStorage。

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

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

答案 1 :(得分:0)

一个解决此问题的方法:

var allCompleted = true;

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

    if (value !== "completed") {
        allCompleted = false;
        break;
    }
}

console.log(allCompleted ? "Course Complete" : "Course Not Complete" );