Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Javascript中存储会话变量_Javascript_Session - Fatal编程技术网

在Javascript中存储会话变量

在Javascript中存储会话变量,javascript,session,Javascript,Session,我试图使用JS将一些字典值存储到会话变量中,但效果不好。它存储未定义的值,当使用此函数时,它没有将其存储为session,也没有给出这些值 sessionStorage.color_array = generateColorsForKidList(); if (!sessionStorage.color_array) { sessionStorage.color_array = generateColorsForKidList(); } function generateColorsForK

我试图使用JS将一些字典值存储到会话变量中,但效果不好。它存储未定义的值,当使用此函数时,它没有将其存储为session,也没有给出这些值

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浏览器控制台中尝试示例代码(我刚刚根据答案中的数据进行了更新)?