gpt4 book ai didi

javascript - 在 JavaScript 中生成 JSON 时出错

转载 作者:行者123 更新时间:2023-12-02 18:54:51 25 4
gpt4 key购买 nike

我正在尝试创建 JSON,但出现类型错误。该错误表示,无法设置未定义的属性“apps”。这发生在 *.isFav = true陈述。如果我删除 if 语句,它就会起作用( isFavt(*) 语句)。

任何帮助将不胜感激。谢谢!

        pref.userid =   username;
//systems
systems = [];
for(i=0;i<system.length;i++)
{
systems[i] = new Object();
systems[i].systemid = system[i];
systems[i].apps = [];
j = 0;
$('.save label').each(function ()
{
lst = $(this).text();
console.log(systems[i]);

systems[i].apps[j] = new Object();
systems[i].apps[j].name = lst;
systems[i].apps[j].href= findHref(lst.toLowerCase().replace(/ /g,'_'));
//seq
systems[i].apps[j].seq = j;
//check for favourites
if(isFavt(lst))
systems[i].apps[j].isFav = 'true';
else
systems[i].apps[j].isFav = 'false';

//check for default
if(isDef(lst) == true)
systems[i].apps[j].isDef = 'true';
else
systems[i].apps[j].isDef = 'false';
//subapps


j = j + 1;
});
}
pref.systems = systems;
return pref;
}

最佳答案

很可能,您的 isFavt() 函数中有一个循环,它会覆盖 i 变量。如果您不使用 var 声明变量,JavaScript 没有 block 作用域,并且使用全局作用域。

替换

for(i=0;i<system.length;i++)

for(var i=0;i<system.length;i++)

在您的isFavt函数中执行相同的操作,因为这就是错误的来源。实际上,对您希望在所有代码中的函数本地的每个变量进行此操作。

此外,我强烈建议阅读 JavaScript 中的作用域。

关于javascript - 在 JavaScript 中生成 JSON 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15492632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com