javascript中字符串向量映射的数组读取问题
Array read problem for map of vectors of strings in 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对象,在其属性中包含数组。您可以使用Object和Array文字。优点是您的代码看起来更干净。很少有理由在javascript代码中使用new Array
或new 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。
相关文章:
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- Jquery 读取编号组中选择下拉列表的数组
- Javascript Float32数组抛出无法读取属性'0'即使数组定义良好,也为null
- 如何在php中读取没有任何键的JSON数组
- 角度推入数组给出:TypeError:无法读取属性'推'的未定义
- 修改d3.js圆环图以读取json数组
- 如何在Immutable.js中读取数组中的值
- 从数组中读取的敲除javascript函数
- 读取外部local.txt文件以将数据加载到数组中
- 如何在不赋值数组变量的情况下读取数组数据
- JavaScript 2d 数组导致“无法读取未定义的属性'未定义'”
- 角度无法读取数组中的对象
- Javascript数组读取
- jquery:从 JSON 数组读取值
- 从公共数组读取时,javascript if语句不能与ifValid一起使用
- 将单个数组读取到存储中
- Javascript,从数组读取变量
- 在Javascript中使用数组读取数组
- 数组读取,然后停止-错误:Cannot set property '0'的定义
- javascript中字符串向量映射的数组读取问题