使用javascript从knockout.js可观察数组中删除元素

使用javascript从knockout.js可观察数组中删除元素,javascript,visual-studio,knockout.js,Javascript,Visual Studio,Knockout.js,我已经调用了一个函数并填充了我的数组,这很好,现在我想在数组中循环并删除任何元素,如果“Name”字段的值在数组中出现多次(即多个记录的“Name”值相同),如果HubID字段为空 有人能举个例子吗 谢谢我想应该是这样的 self.count = ko.computed(function (_name) { var countedItems = ko.utils.arrayFilter(self.Products(), function (arrayItem) {

我已经调用了一个函数并填充了我的数组,这很好,现在我想在数组中循环并删除任何元素,如果“Name”字段的值在数组中出现多次(即多个记录的“Name”值相同),如果HubID字段为空

有人能举个例子吗


谢谢

我想应该是这样的

self.count = ko.computed(function (_name) {
            var countedItems = ko.utils.arrayFilter(self.Products(), function (arrayItem) {
                return arrayItem.Name == _name;
            });
            return countedItems.length;
        });

您应该使用
arrayGetDistinctValues
knockout实用程序函数获取所有唯一产品名称的数组

self.uniqueNames = ko.dependentObservable(function() {
    var arrayOfNames = ko.utils.arrayMap(self.Products(), function(item){ return item.Name})
    return ko.utils.arrayGetDistinctValues(arrayOfNames).sort();
});
您可以使用knockout
arrayFilter
实用程序筛选数组,以从数组中选择项目的特定子集。在本例中,HubID不为null

self.filteredProducts = ko.computed(function() {
    return ko.utils.arrayFilter(this.Products(), function(item) {
         return item.HubID != null;
    });
});

它是一个击倒可观测阵列吗?到目前为止,您所获得的代码示例将非常有用。