在Javascript中存储会话变量
我试图使用JS将一些字典值存储到会话变量中,但效果不好。它存储未定义的值,当使用此函数时,它没有将其存储为session,也没有给出这些值在Javascript中存储会话变量,javascript,session,Javascript,Session,我试图使用JS将一些字典值存储到会话变量中,但效果不好。它存储未定义的值,当使用此函数时,它没有将其存储为session,也没有给出这些值 sessionStorage.color_array = generateColorsForKidList(); if (!sessionStorage.color_array) { sessionStorage.color_array = generateColorsForKidList(); } function generateColorsForK
sessionStorage.color_array = generateColorsForKidList();
if (!sessionStorage.color_array) {
sessionStorage.color_array = generateColorsForKidList();
}
function generateColorsForKidList() {
//code
color_array.push({
color: getRandomColor(),
kid: kid,
});
return color_array;
}
function fillExamKiddata(exams, currentMonth, currentYear) {
//code
var color_array = sessionStorage.color_array;
var exams = $('.exam_event');
exams.each(function(index) {
for (var k = 0; k < color_array.length; k++) {
if ($(this).find('small').eq(3).text().trim() == color_array[k]['kid'].trim()) {
//giving index error
}
sessionStorage.color_array=generateColorsForKidList();
if(!sessionStorage.color\u数组){
sessionStorage.color_数组=generateColorsForKidList();
}
函数generateColorsForKidList(){
//代码
color_array.push({
颜色:getRandomColor(),
孩子:孩子,
});
返回颜色数组;
}
函数fillExamKiddata(考试、当前月、当前年){
//代码
var color\u数组=sessionStorage.color\u数组;
变量检查=$('.exam_event');
考试。每个(功能(索引){
for(var k=0;k
错误:
我使用了函数sessionStorage.getItem()和sessionStorage.setItem(),但结果是一样的。
知道我是否用错了会话值吗
谢谢你的阅读
编辑:generateColorsForKidList()的内容
sessionStorage.color\u array=generateColorsForKidList();
更改为
sessionStorage.color\u array=JSON.stringify(generateColorsForKidList());
保存时字符串化值
var color\u array=sessionStorage.color\u array;
更改为
var color\u array=JSON.parse(sessionStorage.color\u array);
在使用之前解析这些值
示例代码
const colors = [
{ color: "#a", kid: "abc" },
{ color: "#b", kid: "xyz" }
];
const setSS = (arr, name) =>
window.sessionStorage.setItem(name, JSON.stringify(arr));
const getSS = name => JSON.parse(window.sessionStorage.getItem(name));
console.log(colors);
setSS(colors, "my_colors");
const color_array = getSS("my_colors");
for (var k = 0; k < color_array.length; k++) {
console.log(color_array[k]["kid"].trim());
}
const colors=[
{color:#a“,kid:“abc”},
{color:#b“,kid:“xyz”}
];
常量设置=(arr,name)=>
setItem(名称,JSON.stringify(arr));
const getSS=name=>JSON.parse(window.sessionStorage.getItem(name));
控制台日志(颜色);
设置(颜色,“我的颜色”);
const color_array=getSS(“我的颜色”);
for(var k=0;k
感谢您的回复,但结果是一样的。@Siva KondapiVenkata@adriano009,您能否提供console.log(generateColorsForKidList())
?@adriano009,您能否在chrome浏览器控制台中尝试示例代码(我刚刚根据答案中的数据进行了更新)?