在 javascript 中创建全局变量列表时出现问题 (Tampermonkey)
Issues creating a global variable list in javascript (Tampermonkey)
我想在 javascript 中创建一个全局变量列表,它将向列表中添加新元素。我需要它是全局的,因为我正在使用 Tampermonkey,我想将旧元素保留在列表中并能够向其中添加新元素。
我怎样才能正确地做到这一点?
我试过类似的方法,但没有用:c
var check_empty = GM_getValue("arr_names");
if(Array.isArray(check_empty) && check_empty.length > 0){ // list of usernames exists and is not empty
var user = "RandomUsername";
GM_setValue("arr_names", check_empty.push(user));
var arr = GM_getValue("arr_names");
for(var i=0; i<arr.length; i++){
window.alert("Length: " + arr.length + " Elements inside: " + arr[i]);
}
}
else{ // create the list
GM_setValue("arr_names",["Initialized"]);
}
所以假设我 运行 这个代码 3 次。然后列表需要如下所示:
["Initialized", "RandomUsername", "RandomUsername"]
如果执行4次,则像这样:
["Initialized", "RandomUsername", "RandomUsername", "RandomUsername"]
GM_setValue("arr_names", check_empty.push(user));
如评论中所述,check_empty.push(user)
returns 更新数组的长度,但您应该在此处传递数组。
您可以压入上一行中的元素并使用变异数组:
check_empty.push(user);
GM_setValue('arr_names', check_empty);
我想在 javascript 中创建一个全局变量列表,它将向列表中添加新元素。我需要它是全局的,因为我正在使用 Tampermonkey,我想将旧元素保留在列表中并能够向其中添加新元素。
我怎样才能正确地做到这一点?
我试过类似的方法,但没有用:c
var check_empty = GM_getValue("arr_names");
if(Array.isArray(check_empty) && check_empty.length > 0){ // list of usernames exists and is not empty
var user = "RandomUsername";
GM_setValue("arr_names", check_empty.push(user));
var arr = GM_getValue("arr_names");
for(var i=0; i<arr.length; i++){
window.alert("Length: " + arr.length + " Elements inside: " + arr[i]);
}
}
else{ // create the list
GM_setValue("arr_names",["Initialized"]);
}
所以假设我 运行 这个代码 3 次。然后列表需要如下所示:
["Initialized", "RandomUsername", "RandomUsername"]
如果执行4次,则像这样:
["Initialized", "RandomUsername", "RandomUsername", "RandomUsername"]
GM_setValue("arr_names", check_empty.push(user));
如评论中所述,check_empty.push(user)
returns 更新数组的长度,但您应该在此处传递数组。
您可以压入上一行中的元素并使用变异数组:
check_empty.push(user);
GM_setValue('arr_names', check_empty);