我已经看过类似的帖子,但我无法用其他帖子的答案解决我的问题。我有以下函数从大数组中返回唯一值:
self.availableActivies = ko.computed(function () {
var activities = [];
$.each(self.data(), function(i, s){
activities.push(s.activities);
});
return $.unique(activities);
});
当我将s.activities推送到'activities'数组时,我有一个包含大约30个重复活动的数组,但只有4个独特的活动。
最后一个jQuery行返回我在chrome中需要的内容,但是如果没有jQuery,我无法弄清楚如何在所有浏览器中运行它。
答案 0 :(得分:1)
$.unique
有效with DOM。因此,请尝试$.unique(activities.sort());
无论如何,我们建议改为使用$.inArray
&对于$.grep
,
activites
function customUnique(array) {
return $.grep(array, function(el, index) {
return index === $.inArray(el, array);
});
}
然后:
self.availableActivies = ko.computed(function () {
var activities = [];
$.each(self.data(), function(i, s){
activities.push(s.activities);
});
return customUnique(activities);
});