我需要检查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");
}
}
}
如果有更好的方法可以解决此问题,我想进一步了解这些选项。预先感谢。
答案 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" );