Lambda like code with Javascript in KnockoutJS
KnockoutJS has a good set of utility functions built in under ko.utils which were actually part of ko, to make ko. However you might find them very useful in writing regular javascript code as well. I came across this example by rniemeyer on ko Google group, which works like lambdas in any language ( => in C#)
ko.utils.arrayFilter allows you to do a items.Where(i => i.type == myType) like statement.
var viewModel = {
items: [
{ type: "a", name: "one" },
{ type: "b", name: "two" },
{ type: "a", name: "three" },
{ type: "b", name: "four" },
{ type: "b", name: "five" }
],
filteredItems: function(type) {
return ko.utils.arrayFilter(this.items, function(item) {
return item.type == type;
});
}
};
The JSFiddle for the working sample is at http://jsfiddle.net/rniemeyer/Kbszh/