2014-02-05 29 views
0

是否有可能做這樣的事在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

如果你需要這樣,總是使用對象及其屬性,沒有變量。 – Bergi

回答

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]; 
+0

如果我們已經知道要放入數組的變量,我們可以將它用於maxlength。 –

0

你不能這樣做,這樣一來,但是這一次將作品(但它是骯髒的,我建議你RECO對於這個問題,找到另一種方式):

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

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

請解釋一下'self'是怎樣的作品,展現* *爲什麼它是不好的做法。 – Bergi

相關問題