Javascript 如何为动态创建的变量创建和赋值?
我正在努力让这一切顺利进行:Javascript 如何为动态创建的变量创建和赋值?,javascript,jquery,eval,Javascript,Jquery,Eval,我正在努力让这一切顺利进行: function whatever(arg) { eval(arg) + '_group' = []; } 其目的是只有一个函数,而不是有三个内容基本相同但变量名不同的函数 最后,我想要一些类似于: a_group = []; b_group = []; 这样做,我得到的错误是: ReferenceError: Invalid left-hand side in assignment 编辑 这是我试图使其工作的原始函数。但这行不通 function col
function whatever(arg) {
eval(arg) + '_group' = [];
}
其目的是只有一个函数,而不是有三个内容基本相同但变量名不同的函数
最后,我想要一些类似于:
a_group = [];
b_group = [];
这样做,我得到的错误是:
ReferenceError: Invalid left-hand side in assignment
编辑
这是我试图使其工作的原始函数。但这行不通
function collect_all_values_for(field_name) {
switch(field_name) {
case 'states':
use = 'state';
case 'cities':
use = 'city';
case 'neighborhoods':
use = 'neighborhood';
}
window[field_name + '_group'] = [];
n_fields = $('[id^=' + use + '_]').length-1;
i = 0;
field_value = 0;
for (i = 0; i<= n_fields; i++) {
if (i == 0) {
field_value = $('#' + use).val();
}else{
field_value = $('#' + use + '_id' + i).val();
}
//states_group.push(field_value);
window[field_name + '_group'].push(field_value);
}
}
然后我可以称之为:
collect_all_values_for('states');
collect_all_values_for('cities');
collect_all_values_for('neighborhoods');
提前谢谢
function whatever(arg) {
window[arg + '_group'] = [];
}
这将a_组
,b_组
设置为全局变量
要访问这些变量,请使用:
window['a_group']、window['b_group']
等等
据编辑
在开关中
应使用break代码>
switch(field_name) {
case 'states':
use = 'state';
break;
case 'cities':
use = 'city';
break;
case 'neighborhoods':
use = 'neighborhood';
break;
}
使用本地对象(无窗口对象)和更好的
虽然你真的不应该使用eval,但这应该会有帮助
eval(arg+'_group')=[]编码>只是为了增加@theparadox的答案。
我更喜欢使用以下方法进行切换。
var options = {
'states' : 'state',
'cities': 'city',
'neighborhoods': 'neighborhood'
};
use = options[field_name];
或者,如果您只想删除最后一个字母,您可以这样做。
use=field\u name.slice(0,-1)代码>
不错!我不知道这种方式。非常感谢。
var myObject = {};
function whatever(arg) {
myObject[arg + '_group'] = [];
// output: { 'a_group' : [], 'b_group' : [], .. }
}
// to set value
myObject[arg + '_group'].push( some_value );
// to get value
myObject[arg + '_group'];
var options = {
'states' : 'state',
'cities': 'city',
'neighborhoods': 'neighborhood'
};
use = options[field_name];