JavaScript array syntax

var selectColumns = new Array(); selectColumns[0] = { TableName: "DeploymentRosterView", ColumnName: "ArrivedOn" }; selectColumns[1] = { TableName: "DeploymentRosterView", ColumnName: "DepartedOn" }; selectColumns[2] = { TableName: "DeploymentRosterView", ColumnName: "RoleType" }; selectColumns[3] = { TableName: "DeploymentRosterView", ColumnName: "AdjusterFirstName" }; selectColumns[4] = { TableName: "DeploymentRosterView", ColumnName: "AdjusterLastName" }; 

The above works to create my array in JavaScript, but is there a more graceful way to write above? How to initialize objects? Just wondering

+7
source share
4 answers

You can create it inline:

 var selectColumns = [ { TableName: "DeploymentRosterView", ColumnName: "ArrivedOn" }, { TableName: "DeploymentRosterView", ColumnName: "DepartedOn" }, { TableName: "DeploymentRosterView", ColumnName: "RoleType" }, { TableName: "DeploymentRosterView", ColumnName: "AdjusterFirstName" }, { TableName: "DeploymentRosterView", ColumnName: "AdjusterLastName" }]; 
+10
source

You can create an array like:

 var selectColumns = [ { TableName: "DeploymentRosterView", ColumnName: "ArrivedOn" }, { TableName: "DeploymentRosterView", ColumnName: "DepartedOn" }, { TableName: "DeploymentRosterView", ColumnName: "RoleType" }, { TableName: "DeploymentRosterView", ColumnName: "AdjusterFirstName" }, { TableName: "DeploymentRosterView", ColumnName: "AdjusterLastName" } ]; 
+1
source

You can rebuild it like this:

 var selectColumns = { "DeploymentRosterView": { "ColumnNames": ["DepartedOn", "RoleType", "AdjusterFirstName", "AdjusterLastName"] } }; // Loop through all views for (view in selectColumns) { var v = selectColumns[view].ColumnNames; alert('Column names for "' + view + '" is: ' + v.join(', ')); }​ 
+1
source

You can also use some tricks to avoid re-typing some things in this particular case.

 var columnNames = ["ArrivedOn", "DepartedOn", "RoleType", "AdjusterFirstName", "AdjusterLastName" ]; var selectColumns = columnNames.map(function(colName){ return { TableName: "DeploymentRosterView", ColumnName: colname }; }); 

Note that the map is not available by default for older browsers (but its variations are very popular in libraries and gaskets)

0
source

All Articles