我想ko.utils.arrayGetDistinctValues在这个小提琴中使用像数组中的多个属性,所以我将数组映射到我想要的两个属性的数组
viewModel.justCategories = ko.dependentObservable(function() {
var categories = ko.utils.arrayMap(this.items(), function(item) {
return { catid : item.catid(), category : item.category() };
});
return categories.sort();
}, viewModel);
Run Code Online (Sandbox Code Playgroud)
然后我尝试使用arrayGetDistinctValues但它似乎不适用于对象.
viewModel.uniqueCategories = ko.dependentObservable(function() {
return ko.utils.arrayGetDistinctValues(viewModel.justCategories()).sort();
}, viewModel);
Run Code Online (Sandbox Code Playgroud)
谁能告诉我怎么做?
arrayGetDistinctValues仅适用于原始值.对于对象,您需要一种不同的方法.这是一个有效的版本.
viewModel.uniqueCategories = ko.dependentObservable(function() {
var seen = [];
return viewModel.justCategories().filter(function(n) {
return seen.indexOf(n.catid) == -1 && seen.push(n.catid);
});
});
Run Code Online (Sandbox Code Playgroud)
http://jsfiddle.net/mbest/dDA4M/2/