根据属性拉取元素而不删除它们 Knockout

Pull elements based on properties without removing them Knockout

我知道这一定很简单,但我无法让它工作。

我有一个具有 属性 isSelected (true/false) 的可观察数组 Items。我想获取所有将 i​​sSelected 设置为 true 的项目。我写了一个很容易做到这一点的小函数:

self.selectedItems = function () {
    var selected = self.Items.remove(function (item) { return item.isSelected; })
    return selected;
}

但如您所料,删除会将这些项目从数组中弹出。有没有函数可以代替这种情况下的remove(),比如get()。或者更可能是将整个函数转换为某种计算可观察对象的正确途径?

试试这个(在 computed/pureComputed 中):

ko.utils.arrayFilter(self.Items(), function(item) { return item.isSelected; });