Javascript 使用observableArray初始化计算变量

Javascript 使用observableArray初始化计算变量,javascript,knockout.js,typescript,Javascript,Knockout.js,Typescript,我试图过滤一个可观察的数组,并将过滤后的数组存储到一个计算变量中。我编写了一个Typescript类构造函数,其中的代码如下: var self = this; self.Items = ko.observableArray(ko.utils.arrayMap(data.Items, function (item: IShipmentItem) { return new _refShipmentItem.Model.ShipmentItem(item); })); sel

我试图过滤一个可观察的数组,并将过滤后的数组存储到一个计算变量中。我编写了一个Typescript类构造函数,其中的代码如下:

var self = this;
self.Items = ko.observableArray(ko.utils.arrayMap(data.Items, function (item: IShipmentItem) {
        return new _refShipmentItem.Model.ShipmentItem(item);
    }));
self.FrtDetlRowItems = ko.computed(function () {
        var frtdetlRows = ko.observableArray<_refShipmentItem.Model.ShipmentItem>([]);
        ko.utils.arrayForEach(self.Items(), function (item) {
            if (item.AccessorialId == '1' && item.Cost != '') {
                frtdetlRows.push(item);
            }
        });
        return frtdetlRows;
    });
var self=this;
self.Items=ko.observearray(ko.utils.arrayMap(data.Items,function)(item:IShipmentItem){
返回新的_refShipmentItem.Model.ShipmentItem(项目);
}));
self.FrtDetlRowItems=ko.computed(函数(){
var frtdetlRows=ko.observableArray([]);
ko.utils.arrayForEach(self.Items(),函数(item){
如果(item.AccessorialId='1'和&item.Cost!=''){
frtdetlRows.push(项目);
}
});
返回frtdetlRows;
});
但每当我在控制台中检查此项时,“FrtDetlRowItems”就会给出“undefined”。 我做错什么了吗?
请帮助

我需要按如下方式返回:

return frtdetlRows();

从计算函数中。

我需要返回以下内容:

return frtdetlRows();

从计算函数中。

我不认为
observearray
是有效的语法?将其更改为
ko.observearray()谢谢RGraham,我现在做了,它不是“未定义的”。但是仍然是FrtDetlRowItems().length是零,但是如果我检查frtdetlRows().length,它的计数不是零,当然取决于数据。我不认为
observableArray
是有效的语法吗?将其更改为
ko.observearray()谢谢RGraham,我现在做了,它不是“未定义的”。但是仍然是FrtDetlRowItems().length是零,但是如果我检查frtdetlRows().length,它的计数不是零,当然取决于数据。