Mark
Mark

Reputation: 2587

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 the above? Like an Object Initializer? Just wondering

Upvotes: 6

Views: 5993

Answers (4)

balkon_smoke
balkon_smoke

Reputation: 1196

You could 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" }
];

Upvotes: 1

hugomg
hugomg

Reputation: 69934

You can also use some tricks to avoid retyping some things in this particular case

var columnNames = ["ArrivedOn", "DepartedOn", "RoleType", "AdjusterFirstName", "AdjusterLastName" ];

var selectColumns = columnNames.map(function(colName){
    return { TableName: "DeploymentRosterView", ColumnName: colname };
});

Do note that map is not available by default on old browsers (but variations of it are very popular in libraries and shims)

Upvotes: 0

Gary Green
Gary Green

Reputation: 22395

You could restructure it like so:

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(', '));
}​

Upvotes: 1

Adam Rackis
Adam Rackis

Reputation: 83358

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" }];

Upvotes: 10

Related Questions