jQuery - Search an array of objects to filter by property of object
I have an array of objects, see below:
var orderbyColumns = [Object { Descending=true, TableName="Users", ColumnName="RankCode", more...}, Object { Descending=false, TableName="Users", ColumnName="LastName", more...}]
Now I want to extract from orderbyColumns开发者_开发百科 by the TableName and ColumnName properties.
It would be nice if the below worked, but it doesn't. Any ideas?
var filter = $(orderbyColumns).find('[ColumnName=' + columnName + ']');
It would be nice if you could do:
var filter = from x in orderbyColumns where x.TableName == "Users" && x.ColumnName == "RankCode" select x;
I might do it this way:
var orderByColumns = [ { Descending:true, TableName:"Users", ColumnName:"RankCode", more:"..."}, { Descending:false, TableName:"Users", ColumnName:"LastName", more:"..."}]
orderByColumns.findObject = findObject;
var filter = orderByColumns.findObject("ColumnName","LastName");
alert(filter.Descending); // returns 'false'
function findObject(name,val) {
var len = this.length;
for (var i=0; i<len; i++) {
if (this[i][name]===val) { return this[i]; }
}
return null;
}
You could have a look at linqjs -
http://linqjs.codeplex.com/
That should bring you closer to your nice to have query.
精彩评论