Passing values to ko.computed in Knockout JS

Each firm really should be containing a list of clients, but you could use a regular function I think and pass it the firm:

self.getClientsForFirm = function (firm) {
    return ko.utils.arrayFilter(self.Clients(), function (item) {
        var fId = item.FirmId();
        return (fId === firm.Id());
    });
});

Then in html, $data is the current model, in your case the firm:

<div data-bind="foreach: $root.getClientsForFirm($data)">

Knockout doesn't allow you pass anything to a computed function. That is not what it is for. You could instead just use a regular function there if you'd like.

Another option is to have the data already in the dataset on which you did the first foreach. This way, you don't use $parent.getClients, but more like $data.clients.