2017-05-25 128 views
0

我已经调用了一个函数并填充了我的数组,这很好,我现在要循环访问该数组并删除其中出现'Name'字段值更多的元素而不是数组中的一次(即多个记录具有相同的'Name'值),其中HubID字段为空。使用javascript从knockout.js可观察数组中删除元素

任何人都可以提供一个例子吗?

感谢

+0

它是一个Knockout Observable Array吗?到目前为止,您的代码的一个例子会有所帮助。 – Drummad

回答

1

您应该使用arrayGetDistinctValues淘汰赛效用函数把所有的独特的产品名称的数组。

self.uniqueNames = ko.dependentObservable(function() { 
    var arrayOfNames = ko.utils.arrayMap(self.Products(), function(item){ return item.Name}) 
    return ko.utils.arrayGetDistinctValues(arrayOfNames).sort(); 
}); 

可以使用基因敲除arrayFilter实用程序来选择从所述数组项的某个子集筛选阵列。在这个HubID不为null的例子中。

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

我认为这将是东西沿着这些线路

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