你能用这种方式分配变量吗?

时间:2014-02-05 17:53:52

标签: javascript

是否有可能在JS中做这样的事情?

var vehicleTable, journeyTable, alertTable, maintenanceTable;
var infoTablesVars = [vehicleTable, journeyTable, alertTable, maintenanceTable];

for (var x = 0; x < infoTablesVars.length; x++){
    infoTablesVars[x] = x;            
}

编辑:

对于聪明人,我确实试过了。这就是我实际上要做的事情:

$(function(){
                    vehicleTable = $('#table_vehicleInfo').dataTable({
                        "bInfo": false,
                        "bFilter": false,
                        "bSort": false,
                        "bPaginate": false,
                        "bJQueryUI": true,
                        "bAutoScroll": true,
                        "bAutoWidth": true,
                        "sScrollY": "75px",
                        "sScrollX": "100%"
                    });  //end vehicleTable

                    maintenanceTable = $('#table_maintenanceInfo').dataTable({
                        "bInfo": false,
                        "bFilter": false,
                        "bSort": false,
                        "bPaginate": false,
                        "bJQueryUI": true,
                        "bAutoScroll": true,
                        "bAutoWidth": true,
                        "sScrollY": "75px",
                        "sScrollX": "100%"
                    });  //end maintenanceTable

                    journeyTable = $('#table_journeyInfo').dataTable({
                        "bInfo": false,
                        "bFilter": false,
                        "bSort": false,
                        "bPaginate": false,
                        "bJQueryUI": true,
                        "bAutoScroll": true,
                        "bAutoWidth": true,
                        "sScrollY": "75px",
                        "sScrollX": "100%"
                    });  //end journeyTable

                    alertTable = $('#table_alertInfo').dataTable({
                        "bInfo": false,
                        "bFilter": false,
                        "bSort": false,
                        "bPaginate": false,
                        "bJQueryUI": true,
                        "bAutoScroll": true,
                        "bAutoWidth": true,
                        "sScrollY": "75px",
                        "sScrollX": "100%"
                    });  //end alertTable

                });  //end function()

对此:

var infoTablesVars = [vehicleTable, journeyTable, alertTable, maintenanceTable];


var infoTables = ['#table_vehicleInfo', '#table_journeyInfo', '#table_alertInfo', '#table_maintenanceInfo'];

 $(function(){

                    for (var x = 0; x < infoTablesVars.length; x++){

                        infoTablesVars[x] = $(infoTables[x]).dataTable({
                        "bInfo": false,
                        "bFilter": false,
                        "bSort": false,
                        "bPaginate": false,
                        "bJQueryUI": true,
                        "bAutoScroll": true,
                        "bAutoWidth": true,
                        "sScrollY": "75px",
                        "sScrollX": "100%"
                        });
                    }

                });  //end function()

分配永远不会出现在第二部分。

2 个答案:

答案 0 :(得分:0)

你可以初始化数组,但是考虑到每个索引总是一个特定的变量,只有通过代码处理它才有可能,你的代码应该是:

var infoTablesVars = [];

for (var x = 0; x < 4; x++){
    infoTablesVars[x] = x;            
}

Here is demo

或者您也可以尝试See Demo

var vehicleTable=2, journeyTable=4, alertTable=50, maintenanceTable=67;
var infoTablesVars = [vehicleTable, journeyTable, alertTable, maintenanceTable];

答案 1 :(得分:0)

你不能这样做,但这个可行(但它很脏,我建议你重新考虑这个问题并找到另一种方式):

var vehicleTable, journeyTable, alertTable, maintenanceTable;
var infoTablesVars = ["vehicleTable", "journeyTable", "alertTable", "maintenanceTable"];

for (var x = 0; x < infoTablesVars.length; x++){
    self[infoTablesVars[x]] = x;            
}
相关问题