javascript中字符串向量映射的数组读取问题

javascript中字符串向量映射的数组读取问题,javascript,Javascript,我是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.wri

我是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]);
}
var pop=new Array();
pop['la']=新数组('nt','gb','te');
pop['sa']=新数组('nt','gb');
pop['ha']=新阵列('pc','pa');
var_ecpop=“la”;
对于(var i=0;i
我只是不知道有没有其他方法可以得到一个字符串向量的映射

谢谢


阿米尔。

这不是一个数组,而是一个Javascript对象,它的属性中包含数组。您可以使用对象和数组来实现这一点。优点是您的代码看起来更干净。很少有理由在javascript代码中使用
新数组
新对象
(参见示例)

现在你可以使用

for (var i = 0; i < pop.la.length; i++) { 
 console.log(pop.la[i]);
} 
document.write
不是将内容放在页面上的首选方式。例如,使用带有id的元素,并使用
innerHTML
向其写入输出,这样做更好,也更容易

document.getElementById('myOutput').innerHTML = '[some output here]';

在javascript中,数组只能有数字索引,如果要使用文本索引,应该使用object

var pop = new Object();

然后:

pop['la'] = new Array('nt','gb','te');
但是,由于对象不是数组,因此它没有长度成员,但就像数组一样,您可以使用遍历其所有值


使用document.write不是一个好的选择,因为它只在文档加载期间有效,而不是加载之后。尝试改用文本节点或innerhtml。

请将代码缩进4个空格,格式化代码。输入下面的预览应该可以帮助您设置格式。问题是_ecpop是我从URL查询字符串中获取的字符串。。我在想这个方法。。。但是我不知道如何使它工作……然后你可以使用我们的pop[_ecpop],或者将pop[_ecpop]分配给一个变量,以进一步循环(
var-laArr=pop[_ecpop];for(var I=0;我看到editI实现了,如果我只将var-pop=new Array();更改为var-pop={};它工作了!
document.getElementById('myOutput').innerHTML = '[some output here]';
var pop = new Object();
var pop = {};
pop['la'] = new Array('nt','gb','te');