-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.js
93 lines (86 loc) · 2.54 KB
/
main.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
/**
* 讀取JSON
* @param 檔案路徑 file
* @param callback callback
*/
function loadJSON(file, callback) {
let xobj = new XMLHttpRequest();
xobj.overrideMimeType("application/json");
xobj.open("GET", file, true);
xobj.onreadystatechange = function () {
if (xobj.readyState == 4 && xobj.status == "200") {
callback(xobj.responseText);
}
};
xobj.send(null);
}
function getRandomNumbers(candidates = [], amount = 0) {
if (candidates.length < amount) return;
// 複製一份所有選項
let _candidates = candidates;
// 最終結果
let result = [];
// 當還沒選到你要的數量就繼續
while (result.length < amount) {
// 從現有選項的數量中,隨機取得一個 index 值
// 第一次會是 0~3,第二次會是 0~2
let randomIndex = Math.floor(Math.random() * _candidates.length);
// 把選到的 index 對應的選項推進最終結果
result.push(_candidates[randomIndex]);
// 從選項中把選到的移除
_candidates.splice(randomIndex, 1);
}
// 回傳最終結果
return result;
}
function download() {
// 取出目前使用者成績
let savedUser = localStorage.getItem("savedUser");
// 存檔
let pom = document.createElement("a");
pom.setAttribute(
"href",
"data:application/json;charset=utf-8," + encodeURIComponent(savedUser)
);
pom.setAttribute("download", "rank.json");
if (document.createEvent) {
let event = document.createEvent("MouseEvents");
event.initEvent("click", true, true);
pom.dispatchEvent(event);
} else {
pom.click();
}
// localStorage.clear();
}
function resetLocalStorage() {
localStorage.clear();
localStorage.setItem("CURRENT_SEQUENCE", -1);
localStorage.setItem("CURRENT_MODE", 1);
localStorage.setItem("STROOP_TOTAL_QUESTION_NUM", 20);
localStorage.setItem("STRESS_COLOR_TOTAL_TIME", 30);
localStorage.setItem("STRESS_COLOR_QUESTION_TIME", 3);
localStorage.setItem("STRESS_CALC_TOTAL_TIME", 30);
localStorage.setItem("STRESS_CALC_QUESTION_TIME", 5);
localStorage.setItem("STRESS_REST_TIME", 30);
localStorage.setItem("STRESS_STOP_TIME", 20);
}
/**
* 對 LocalStorage key 的 value 加一
* @param {*} key localStorage key
*/
function addLocalStorage(key) {
let val = parseInt(localStorage.getItem(key));
val += 1;
localStorage.setItem(key, val);
return val;
}
/**
* 對 LocalStorage key 的 value 加一
* @param {*} key localStorage key
*/
function minusLocalStorage(key) {
let val = parseInt(localStorage.getItem(key));
val -= 1;
localStorage.setItem(key, val);
return val;
}