【问题标题】:Storing session variable in Javascript在 Javascript 中存储会话变量
【发布时间】:2020-02-06 17:59:53
【问题描述】:

我正在尝试使用 JS 将一些字典值存储到会话变量中,但效果不佳。它正在存储未定义的值,当使用此函数而不将其存储为会话时,它不会给出这些值。

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.getItem() 和 sessionStorage.setItem() 但结果是一样的。 如果我以错误的方式使用会话值,知道吗?

感谢阅读!

编辑:generateColorsForKidList() 的内容

【问题讨论】:

    标签: javascript session


    【解决方案1】:

    sessionStorage.color_array = generateColorsForKidList();改成

    sessionStorage.color_array = JSON.stringify(generateColorsForKidList());

    在保存时对值进行字符串化。

    var color_array = sessionStorage.color_array;改成

    var color_array = JSON.parse(sessionStorage.color_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());
    }
    

    【讨论】:

    • 感谢回复,但结果是一样的。 @Siva Kondapi Venkata
    • @adriano009,可以提供console.log(generateColorsForKidList())的内容吗?
    • @adriano009,您可以在您的 chrome 浏览器控制台中尝试示例代码(我刚刚根据答案中的数据进行了更新)吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-06
    相关资源
    最近更新 更多