javascript动态填充关联数组并获取值

Nom*_*mad 10 javascript arrays

我想基于数组构建一个关联数组,然后获取该关联数组的值.关联数组的结构如下:

        var myAssociativeArr = new Array();

        myAssociativeArr = [
         { id:'1',
          lname:'doe',
          fname:'john' 
        },
         { id:'2',
          lname:'smith',
          fname:'john' 
        }

        ]
Run Code Online (Sandbox Code Playgroud)

我有三个相同长度的数组,我将构建这个关联数组,即id,lname和fname数组.

    for(var i=0; idArray.length;i++)
    {
    myAssociativeArr [id]=idArray[i];
    myAssociativeArr [lname]=lnameArray[i];
    myAssociativeArr [fname]=fnameArray[i];
    }
Run Code Online (Sandbox Code Playgroud)

请告诉我上面的方法是否正确,如果没有,如何构建这个数组,以及如何通过循环获取该数组的valeus.

我们将不胜感激.

Jer*_*man 20

你很近.首先,如果你想使用数组下标表示法,你必须自己传递键(在你的情况下是字符串,如下所示):

var myAssociativeArr = [];
for (var i=0; i < idArray.length; i++) {
    var newElement = {};
    newElement['id'] = idArray[i];
    newElement['lname'] = lnameArray[i];
    newElement['fname'] = fnameArray[i];
    myAssociativeArr.push(newElement);
}
Run Code Online (Sandbox Code Playgroud)

如果键名是已知字符串,则通常最好使用完全等效的对象属性表示法:

var myAssociativeArr = [];
for (var i=0; i < idArray.length; i++) {
    var newElement = {};
    newElement.id = idArray[i];
    newElement.lname = lnameArray[i];
    newElement.fname = fnameArray[i];
    myAssociativeArr.push(newElement);
}
Run Code Online (Sandbox Code Playgroud)

通过使用对象文字,您可以更加简洁,就像在示例输出中所做的那样:

var myAssociativeArr = [];
for (var i=0; i < idArray.length; i++) {
    myAssociativeArr.push({
        id: idArray[i],
        lname: lnameArray[i],
        fname: fnameArray[i]
    });
}
Run Code Online (Sandbox Code Playgroud)

编辑:固定循环索引不是无限的.

您以与编写元素相同的方式阅读元素:myAssociativeArr[i]['id']等等myAssociativeArr[i].id.

对于按ID查找,最好为此构造一个对象.

var myObject = {};
for (var i=0; i < idArray.length; i++) {
    myObject[idArray[i]] = {
        id: idArray[i],
        lname: lnameArray[i],
        fname: fnameArray[i]
    };
}
Run Code Online (Sandbox Code Playgroud)

去查查看:

myObject['2'] // => { id: '2', ... }
Run Code Online (Sandbox Code Playgroud)


Cha*_* Ma 5

不完全是,试试这个:

 for(var i=0; idArray.length; i++)
 {
    myAssociativeArr[i] = {
                           id: idArray[i], 
                           lname: lnameArray[i], 
                           fname: fnameArray[i]
                          };
 }
Run Code Online (Sandbox Code Playgroud)

获取第 5 个元素的 id: myAossociativeArr[i]['id'],我相信你可以从这里找出其余的 ;)