将可观察数组作为函数参数传递

时间:2014-01-28 16:59:45

标签: javascript arrays knockout.js

我正在开发ASP.Net MVC 5和KnockoutJs中的会计软件。 我是KnockoutJs和Javascript的新手,所以有一些困难。

我想将一个可观察数组传递给一个函数,该函数将为我计算帐户代码。在那个函数中我想要那个数组。

我的代码:

self.SUBACCOUNTS = ko.observableArray([]);
self.selectedSubAccount.subscribe(function (newValue) {                           
    self.ACCOUNT_CODE = GenrateAccountCode(self.SUBACCOUNTS());
});
function GenrateAccountCode(accArray)
{
    //want to access some value of the passed array here
}

我想将上述函数的返回值赋给可观察变量(self.ACCOUNT_CODE)。

1 个答案:

答案 0 :(得分:0)

要访问可观察数组的某些值,可以使用ko.utils.arrayForEach函数,并使用以下示例:

// where accArray === self.SUBACCOUNTS()
function GenrateAccountCode(accArray)
{
     var initialCode = 0;
     //want to access some value of the passed array here
     ko.utils.arrayForEach(accArray, function(subaccount){
         // process the values of the array here. Assume each SUBACCOUNTS() item has a code property
          initialCode += subaccount.code();
     });
     return initialCode;
}

然后将你的self.ACCOUNT_CODE observable设置为函数的返回值,你可以这样做:

self.ACCOUNT_CODE(GenerateAccountCode(self.SUBACCOUNTS())