0

我有一个表作为字符串存储在localstorage的 JSON 数据中。我想将此处存储的字段之一与单独的 javascript 变量进行比较。

这是我尝试过的:

var goalsStr = localStorage.getItem("goals");
var goalsObj = JSON.parse(goalsStr); 
for (i=0; i<goalsObj.goals.length; i++) {
  if (goal==goalsObj.goals[i].goal) {
    //.....
    //.....
  }
}

但它不起作用。经过一些故障排除后,我认为问题出在比较(goal == goalsObj.goals[i].goal).

这是实际存储在 localStorage 的“目标”中的值:

var data = '{"goals": [{"goal":"'+goal+'","duedate":"'+date2+'","noofdays":"'+diff+'","active":"'+active+'"}]}';
localStorage.setItem("goals",data);

它是存储在其中的对象数组。

所有这些 'diff'、'duedate' 都是从用户那里获取的 HTML 表单数据。

怎么了?我应该怎么办?

4

1 回答 1

0

数据似乎已经是有效的 JSON。你为什么要把它串起来?我想你只想做

var data = '{"goals": [{"goal":"'+goal+'","duedate":"'+date2+'","noofdays":"'+diff+'","active":"'+active+'"}]}';
localStorage.setItem("goals", data);

然后当您将该值拉回时,将其转换为 JavaScript 对象

var obj = JSON.parse(localStorage.getItem("goals"));
于 2013-12-04T05:47:20.113 回答