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

Array read problem for map of vectors of strings in javascript

本文关键字:数组 读取 问题 映射 字符串 向量 javascript      更新时间:2023-09-26

我是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对象,在其属性中包含数组。您可以使用Object和Array文字。优点是您的代码看起来更干净。很少有理由在javascript代码中使用new Arraynew Object(例如,请参阅本SO问题)。

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),则可以使用括号通知来检索其值:

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中,数组只能有数字索引,如果要使用文本索引,则应使用object。

var pop = new Object();

var pop = {};

然后:

pop['la'] = new Array('nt','gb','te');

但是,由于对象不是数组,因此它没有长度成员,但正如数组一样,您可以使用for。。在中遍历它的所有值。

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