为什么在这种情况下会话存储将值赋为null



我正在会话存储中设置一个值,但在检索它时,我将其作为空值。

这是我的代码

window.sessionStorage.setItem(12, "3");

var data = [
    {
        "item_id": "12",
        "cost": "30"
    },
    {
        "item_id": "13",
        "cost": "30"
    },
    {
        "item_id": "14",
        "cost": "30"
    }
]
for(var i=0;i<data.length;i++)
{
    var item_id = data.item_id;
    var val_sess = sessionStorage.getItem(item_id);
    console.log(val_sess);
}
http://jsfiddle.net/orurq7yL/1/

因为"12"one_answers"12"不是一回事。

请确保使用正确的类型:

typeof 12   // number
typeof "12" // string

setItem函数中缺少12的引号,不能正确访问数据数组

修改如下代码

window.sessionStorage.setItem("12", "3");

var item_id = data[i].item_id;

参见更新后的JSFIDDLE

最新更新