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.write(pop[_ecpop][i]);
}

我只是不知道还有什么其他方法可以得到字符串的向量映射。

谢谢,

阿米尔。

最佳答案

这不是一个数组,而是一个 Javascript 对象,在其属性中包含数组。您可以使用对象和数组 literals为了那个原因。优点是您的代码看起来更干净。很少有理由在 javascript 代码中使用 new Arraynew 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/

相关文章:

javascript - 不能在引号内使用 Angular 值

javascript - Angular ng-options 复杂的 json 数组

javascript - phonegap 上的 js worker 和 websql 数据库

javascript - Grunt 并发任务会覆盖其他任务的日志记录

javascript - 链接多个 Promise(处理回调)

javascript - 无法使用ajax发送元素ID数据

JavaScript 鼠标滚轮事件在垂直滚动时水平滚动页面

javascript - Express、Node、Angular 向前端发送音频文件

javascript - 在父表单提交上重置子组件的输入字段

php - 我想要最简单的ajax表单应用程序