我看过类似的帖子,但我无法用其他帖子的答案解决我的问题。我有以下函数可以从大数组中返回唯一值:

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 的情况下执行此操作,以便它可以在所有浏览器中工作。

请您参考如下方法:

$.unique 有效 with DOM .

然而,activities 似乎是另一种类型的数组。

<小时 />
  • 因此,尝试 $.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); 
      }); 
    


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!