使用for循环将字符串变量赋值给数组
Assign string variable to array using for loop
我有一个字符串变量列表,我想把所有这些变量赋值给一个数组,但是这个列表太多了,我是否可以使用for循环来赋值它
var class_1 = "some description..";
var class_2 = "some description..";
var class_3 = "some description..";
var class_4 = "some description..";
var class_5 = "some description..";
.
.
var class_100 = "some description..";
var classes = [];
for(var i = 0; i < 100; i++){
//loop string variables to array
}
我认为这是不可能的,我分配100个变量手动数组。有人知道什么技巧吗?谢谢你。
[UPDATE]它需要SystemVerilog语法,因为我不熟悉这种语言,所以我在Javascript中呈现这个想法。
在SystemVerilog中,如果不手动将每个变量分配给数组的一个元素,则无法从独立命名的变量列表中构建值数组。
classes[0] = class_0;
classes[1] = class_1;
classes[2] = class_2;
...
用于变量名的标识符具有数字序列这一事实无关紧要,因为除非通过确切的名称,否则无法访问标识符。
如果您希望自动化此操作,则需要更改字符串变量的定义方式。正如人们已经发布的,这应该使用一个数组开始建模,也许使用一个关联数组:
string classes[string];
classes["class_1"] = "some description..";
classes["class_2"] = "some description..";
classes["class_3"] = "some description..";
foreach(classes[name])
// do something with classes[name]
另一个选择是为每个变量使用SystemVerilog类对象
class stringvar;
string m_name;
static stringvar list[$];
function new(string name);
m_name = name;
list.push_back(this);
endfunction
endclass
stringvar class_0 = new("some description..");
stringvar class_1 = new("some description..");
stringvar class_2 = new("some description..");
...
foreach(stringvar::list[item])
// do something with item.m_name
像这样:
var class_1 = "some description..";
var class_2 = "some description..";
var class_3 = "some description..";
var class_4 = "some description..";
var class_5 = "some description..";
var class_100 = "some description..";
var classes = [];
for(var i = 0; i < 100; i++){
classes.push(window['class_'+i])
}
我认为那个评论有一定的道理。但是要回答您的问题:假设您的变量遵循与上面示例相同的命名约定,您可以用数组值为预定义变量赋值,如下所示:你有100个变量?你应该先把它整理好
var a = []
for(var i = 0; i < num_vars; i++){
var key = 'class_' + (i + 1)
if (this[key])
a.push(this[key])
}
您也许可以使用eval。像这样:
for (var i = 0; i < 100; i++) {
var toEval = "classes.push(class_" + i + ")";
eval(toEval);
}
相关文章:
- Lodash 从值数组中查找数组中的值
- 使用Undercore获取属性值数组
- 选择具有值数组的所有元素的最有效方法
- 使用jquery grep过滤具有值数组的json对象
- 如何使用JQuery将值数组插入到数据库中
- 创建属性值数组,其中属性名称以特定字符串结尾
- 如何在jqueryajax中发布值数组
- 如何在不赋值数组变量的情况下读取数组数据
- Lodash 从与值数组不匹配的数组中获取项目
- 下划线,将对象列表转换为对象值数组
- 我可以将变量赋值为数组值吗?
- 将键/值数组中的对象与另一个对象(键/值)进行比较
- 使用Node中的Q promise库对值数组顺序调用/执行相同的函数;并返回带有结果的新数组/集合
- 创建一个计算值数组,该数组绑定到AngularJS中的其他输入
- 将JavaScript对象转换为值数组
- 将选定值数组发送到控制器-MVC
- 将键、值对象转换为仅值数组
- 将Adobe DTM中的值数组赋值给列表变量
- JavaScript -赋值-数组的数组
- 改变一个数组的值也会改变另一个赋值数组的值