Reputation: 2587
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
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
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
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
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