无法从循环内访问数组-javascript

无法从循环内访问数组-javascript,javascript,arrays,Javascript,Arrays,我有一个userss数组,似乎无法在任何类型的循环中使用。当我试图在循环中访问数组“userss”时,它是未定义的 下面是生成的javascript/html。我相信这很简单,我只是盯着这个方向看太久了,我看不出错误。我无法从循环中访问任何属性,包括我已经在其上面使用的属性 <script type="text/javascript"> var userss = []; userss[ '1' ] = { id:'1', fname:'Lorem', lname: 'ipsum',

我有一个userss数组,似乎无法在任何类型的循环中使用。当我试图在循环中访问数组“userss”时,它是未定义的

下面是生成的javascript/html。我相信这很简单,我只是盯着这个方向看太久了,我看不出错误。我无法从循环中访问任何属性,包括我已经在其上面使用的属性

<script type="text/javascript">
var userss = [];
userss[ '1' ] = { id:'1', fname:'Lorem', lname: 'ipsum', uname: 'as', email: 'none@none.com', loca: '', flags: 'a', active: '1' };
userss[ '2' ] = { id:'2', fname:'dolor', lname: 'sit', uname: 'dsit', email: 'dsit@someemail.com', loca: 'CA', flags: 'afmnopt', active: '1' };
userss[ '3' ] = { id:'3', fname:'Test', lname: 'Testerson', uname: 'ttest', email: 'ttesterson@notreal.com', loca: 'TX', flags: 'afmnopt', active: '1' };
function usersx(x) {
    document.getElementsByName("fname")[0].value = userss[x]["fname"];
    document.getElementsByName("lname")[0].value = userss[x]["lname"];
    document.getElementsByName("email")[0].value = userss[x]["email"];
    document.getElementsByName("user")[0].value = userss[x]["uname"];


    var rightChecks = document.querySelectorAll("[name^='right']");

    alert(userss[x]["flags"]);//this works
    for (x = 0 ; x < rightChecks.length ; x++){ //This is the point that it breaks
        //if(true){

            alert(userss[x]["flags"]);//this fails "Cannot read property flags of undefined"
            var a_link = new RegExp("/" + rightChecks[x].name[5] + "/");
            //alert(userss[x]["flags"]);
            document.getElementsByName(rightChecks[x].name)[0].checked = a_link.test(userss[x]["flags"]);
            //alert(rightChecks[x].name[5]);

        //}
    }
}

var userss=[];
userss['1']={id:'1',fname:'Lorem',lname:'ipsum',uname:'as',email:'none@none.com',loca:'',标志:'a',活动:'1'};
userss['2']={id:'2',fname:'dolor',lname:'sit',uname:'dsit',email:'dsit@someemail.com,loca:'CA',标志:'afmnopt',活动:'1'};
userss['3']={id:'3',fname:'Test',lname:'Testerson',uname:'ttest',email:'ttesterson@notreal.com,loca:'TX',标志:'afmnopt',活动:'1'};
函数usersx(x){
document.getElementsByName(“fname”)[0].value=userss[x][“fname”];
document.getElementsByName(“lname”)[0].value=userss[x][“lname”];
document.getElementsByName(“电子邮件”)[0]。value=userss[x][“电子邮件”];
document.getElementsByName(“用户”)[0]。value=userss[x][“uname”];
var rightChecks=document.querySelectorAll(“[name^='right']”);
警报(userss[x][“flags”]);//这有效
对于(x=0;x
非常抱歉,如果这是一个简单的打字错误或什么。。。我只是在这一点上视而不见


编辑:我完全没有意识到我在函数和循环计数器中使用了X。谢谢各位

您是否在脚本中的任何位置调用函数
usersx
?此外,数组索引从零开始,因此最好使用
userss[0]
或将元素推送到userss;使用
userss.push(..)
。另外,您有一个稀疏数组,缺少
zeroth
元素以及错误的原因。您正在使用变量“x”作为函数的参数和循环中的参数..更改其中一个是。。。太多了,奥利,我觉得自己像我想象的那样愚蠢。。。阿加洛,我叫它。。。我只是用了一些坏名字。再次感谢你们两位。你们的数组中没有索引
0
,变量
x
就是从这里开始的,这就是为什么它会断开。为什么使用字符串而不是数字?只需使用push:var userss=[];push({/*您的对象*/});