Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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变量与JSON数据进行比较_Javascript_Json_Html_Local Storage_Object Comparison - Fatal编程技术网

无法将JavaScript变量与JSON数据进行比较

无法将JavaScript变量与JSON数据进行比较,javascript,json,html,local-storage,object-comparison,Javascript,Json,Html,Local Storage,Object Comparison,我在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) {

我在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) {
    //.....
    //.....
  }
}
它是存储在中的对象数组

所有这些“diff”、“duedate”都是从用户处获取的HTML表单数据


怎么了?我该怎么办?

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

var data = '{"goals": [{"goal":"'+goal+'","duedate":"'+date2+'","noofdays":"'+diff+'","active":"'+active+'"}]}';
localStorage.setItem("goals", data);
然后,当您将该值提取出来时,通过

var obj = JSON.parse(localStorage.getItem("goals"));

如果我们不知道
goalsObj
goal
的值,我们就无法真正帮助您。你还必须解释你到底想要实现什么,问题是什么。你认为问题在于比较还是你知道?仅供参考,这个问题似乎与JSON无关(除非问题首先是生成正确的JSON)。它取决于什么是
goal
及其类型。假设它们是对象/数组,则不能与==。您必须向我们确切显示存储在localStorage中的内容。@FelixKling我已编辑该问题以回答您的问题。@blunderboy是的。它们确实涉及对象和数组。如果不使用==,那么我还应该使用什么?是。你完全正确。但我仍然没有得到想要的输出。肯定还有其他错误。@user221287-此时您只需添加一些
调试器语句,在“开发工具”窗口打开的情况下运行代码,只需一步一步地浏览它,看看有什么问题。您的代码看起来不错,在拼接json字符串时,您可能犯了一个愚蠢的错误。这可能是问题所在:可能-您试图在不同的域上访问这段数据吗?不。不是在不同的域上,而是在我笔记本电脑的不同.html文件中。我的整个项目都离线了。
var obj = JSON.parse(localStorage.getItem("goals"));