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)
不完全是,试试这个:
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']
,我相信你可以从这里找出其余的 ;)