如何在javascript中混合变量和循环索引
how to mix variables and loop indexes in javascript?
我得到了十个javascript变量命名1号街,2号街,3号街……street10 .
我必须通过输入这些变量来做一个循环。所以我照做了:
var data;
for (var i=1;i<=10;i++)
{
data = data + 'this is street '+street+i+''n';
}
console log打印"street"不存在…这是正确的,因为我的变量名为street1。有一种方法,我可以"混合"变量和索引?
你真的应该使用一个数组:
var street = [];
street.push("Fake St");
for(var i=0; i<street.length; i++) {
data += "this is street: " + street[i] + "'n";
}
但是你可以实现你原来的想法使用括号符号:
var data;
for (var i=1;i<=10;i++)
{
data = data + 'this is street '+ this["street"+i] +''n';
}
将该项存储在数组中更有意义:
var items = ["a", "b", "c"];
for (var i=0;i<3;i++)
{
Console.log(items[i]);
}
也可以使用方括号表示法。访问Street1
将取决于它的位置,假设您没有限定任何范围,下面将根据street1
的定义位置获得值:
this['street' + i]
window['street' + i]
可以使用eval
来做到这一点,但这是缓慢的,危险的,只是一个糟糕的做法,所以我不打算给你看。
你可以用数组来代替。
var streets = ['street1','street2','etc.','street10'];
然后,可以循环遍历数组并获取值:
var data;
for (var i=0;i<10;i++)
{
data = data + 'this is street '+streets[i]+''n';
}
一般接受的方法是使用数组。你的代码看起来像这样:
var streets = ["Park street", "First street", "Pine street", "Rainbow road", "Yellow brick road", "View street", "Ninth street", "Cedar street", "Lake court", "Hill street"];
for(var i = 0; i < streets.length; i++) {
data += "this is street " + streets[i] + "'n";
}
关键的改进是,由于for循环的i < streets.length
部分,它将自动调整到数组中有多少条街道。
你可以用eval()
来做,但除了效率低下和比它的价值更多的麻烦之外,这可能是危险的。
相关文章:
- 如何在Javascript函数调用中循环变量
- Jquery-每个循环不更新变量
- 如何将while循环中生成的值存储到变量中,以便以后在JQuery中使用
- 如何在AngularJS-ng重复循环中将长JSON路径缩短为变量
- 在javascript函数的循环中设置全局布尔变量的最佳语法
- 使用javascript使用for循环声明变量
- Coffeescription:循环中的条件变量未正确声明
- 当JSON数据=变量时,需要执行循环
- Javascript'数组'和'循环'如何“;变量[i]”;是一个条件
- for 循环和 if 语句,获取变量并存储它
- JavaScript-用for循环项声明变量
- 将值添加到相同的变量循环jQuery中
- 在JSON变量循环中获取最近5年的日期
- Javascript变量循环
- 使用Google Maps v3中的一个变量(循环、闭包)将事件侦听器附加到一组标记上
- 动态变量循环
- 使用变量&循环创建"onclick"功能
- 以选择器作为变量循环.append()
- 使用webaudioapi和jquery的变量+循环
- 倒计时变量循环和显示数组