我是 JS 新手。这是我的代码,我相信它应该可以工作......但它没有。
var pop = new Array();
pop['la'] = new Array('nt','gb','te');
pop['sa'] = new Array('nt','gb');
pop['ha'] = new Array('pc','pa');
var _ecpop="la";
for (var i = 0; i < pop[_ecpop].length; i++)
{
document.write(pop[_ecpop][i]);
}
我只是不知道还有什么其他方法可以得到字符串的向量映射。
谢谢,
阿米尔。
最佳答案
这不是一个数组,而是一个 Javascript 对象,在其属性中包含数组。您可以使用对象和数组 literals为了那个原因。优点是您的代码看起来更干净。很少有理由在 javascript 代码中使用 new Array
或 new Object
(参见示例 this SO Question)。
var pop = {
la: ['nt','gb','te'],
sa: ['nt','gb'],
ha: ['pc','pa']
}
现在你可以使用
for (var i = 0; i < pop.la.length; i++) {
console.log(pop.la[i]);
}
如果一个属性标签存储在一个变量中(像你_ecpop),你可以使用bracket notiation检索它的值:
var laArr = pop[_ecpop];
for (var i = 0; i < laArr.length; i++) {
console.log(laArr[i]);
}
反过来,您可以为对象分配标签:
var _ecpop = 'la';
pop[_ecpop] = ['nt','gb','te'];
document.write
不是将内容放在页面上的首选方式。使用一些带有 id 的元素,并使用 innerHTML
将输出写入它会更好,也同样容易,例如
document.getElementById('myOutput').innerHTML = '[some output here]';
关于javascript - javascript中字符串向量映射的数组读取问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6448213/