Javascript 无法读取属性';0';未定义的

Javascript 无法读取属性';0';未定义的,javascript,jquery,Javascript,Jquery,我有一个加载和返回JSON项的网格。已添加单选按钮筛选器以筛选这些项目。每次选择单选按钮时,网格项目都将刷新以显示符合筛选条件的项目 问题是,当我单击单选按钮时,什么也没有发生,我看到一个无法读取未定义的错误的属性“0”。JSON加载正确,没有任何404或500错误,我可以使用ChromeDevTools确认。有问题的代码行似乎是while(typeof n.main[l.toString()!=“undefined”)。下面是包含所述代码的函数: function j(n) { var m =

我有一个加载和返回JSON项的网格。已添加单选按钮筛选器以筛选这些项目。每次选择单选按钮时,网格项目都将刷新以显示符合筛选条件的项目

问题是,当我单击单选按钮时,什么也没有发生,我看到一个
无法读取未定义的
错误的属性“0”。JSON加载正确,没有任何404或500错误,我可以使用ChromeDevTools确认。有问题的代码行似乎是
while(typeof n.main[l.toString()!=“undefined”)
。下面是包含所述代码的函数:

function j(n) {
var m = [],
    l;
if (n.main != "undefined") {
    l = 0;
    while (typeof n.main[l.toString()] != "undefined") {
        m.push(n.main[l.toString()]);
        l++
    }
}
if (GridApp.logging) {
    $.log(m.length + " talks loaded")
}
m = f(m);
m = GridMathFactory.applyGridMath(m);
GridModel.setTalkVOs(m);
d = e(d);
for (l = 0; l < d.length; l++) {
    d[l].talkIdx = l
}
    GridController.onTalksLoadSuccess()
}
应该是:

if (n.main !== undefined) {
或:

应该是:

if (n.main !== undefined) {
或:


原来
main
是我调用的JSON中不存在的东西。删除了它,现在它可以正常工作了

function j(n) {
var m = [],
    l;
if (n != "undefined") {
    l = 0;
    while (typeof n[l.toString()] != "undefined") {
        m.push(n[l.toString()]);
        l++
    }
}
if (GridApp.logging) {
    $.log(m.length + " talks loaded")
}
m = f(m);
m = GridMathFactory.applyGridMath(m);
GridModel.setTalkVOs(m);
d = e(d);
for (l = 0; l < d.length; l++) {
    d[l].talkIdx = l
}
    GridController.onTalksLoadSuccess()
}
函数j(n){
var m=[],
L
如果(n!=“未定义”){
l=0;
while(n[l.toString()]的类型!=“未定义”){
m、 推(n[l.toString());
l++
}
}
if(GridApp.logging){
$.log(m.length+“已加载对话”)
}
m=f(m);
m=GridMathFactory.applyGridMath(m);
GridModel.setTalkVOs(m);
d=e(d);
对于(l=0;l
结果是
main
是我调用的JSON中不存在的东西。删除了它,现在它可以正常工作了

function j(n) {
var m = [],
    l;
if (n != "undefined") {
    l = 0;
    while (typeof n[l.toString()] != "undefined") {
        m.push(n[l.toString()]);
        l++
    }
}
if (GridApp.logging) {
    $.log(m.length + " talks loaded")
}
m = f(m);
m = GridMathFactory.applyGridMath(m);
GridModel.setTalkVOs(m);
d = e(d);
for (l = 0; l < d.length; l++) {
    d[l].talkIdx = l
}
    GridController.onTalksLoadSuccess()
}
函数j(n){
var m=[],
L
如果(n!=“未定义”){
l=0;
while(n[l.toString()]的类型!=“未定义”){
m、 推(n[l.toString());
l++
}
}
if(GridApp.logging){
$.log(m.length+“已加载对话”)
}
m=f(m);
m=GridMathFactory.applyGridMath(m);
GridModel.setTalkVOs(m);
d=e(d);
对于(l=0;l
你能创建一个提琴吗?遗憾的是,我使用的JSON只存在于localhost上,所以我不能创建一个工作提琴。如果我只是把整个代码放在那里,会有帮助吗?你能创建一个提琴吗?遗憾的是,我使用的JSON只存在于localhost上,所以我无法创建一个工作提琴。如果我把整个代码都放在那里,会有帮助吗?试过你的建议了。刷新发生,但整个网格显示为空白,但没有错误。我甚至不打算尝试理解其余的代码。给你的变量起一个有意义的名字,不要在这里发布缩小的代码。对不起,我不应该这么做。有太多的代码需要筛选,我想我可能在某个地方犯了语法错误。尝试了你的建议。刷新发生,但整个网格显示为空白,但没有错误。我甚至不打算尝试理解其余的代码。给你的变量起一个有意义的名字,不要在这里发布缩小的代码。对不起,我不应该这么做。有太多的代码需要筛选,只是想我可能在某个地方犯了语法错误。
function j(n) {
var m = [],
    l;
if (n != "undefined") {
    l = 0;
    while (typeof n[l.toString()] != "undefined") {
        m.push(n[l.toString()]);
        l++
    }
}
if (GridApp.logging) {
    $.log(m.length + " talks loaded")
}
m = f(m);
m = GridMathFactory.applyGridMath(m);
GridModel.setTalkVOs(m);
d = e(d);
for (l = 0; l < d.length; l++) {
    d[l].talkIdx = l
}
    GridController.onTalksLoadSuccess()
}