javascript - jQuery 'unique' 在 Safari 中不返回实际的唯一值

标签 javascript jquery arrays json unique

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

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 .

enter image description here 然而,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);
      });
    

关于javascript - jQuery 'unique' 在 Safari 中不返回实际的唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38471415/

相关文章:

javascript - ES6 箭头函数 this

javascript - 悬停在 ul 上不起作用

javascript - jQuery 定位元素的几个层次

c - C中将数组和数组指针传递给函数的区别

arrays - lua: testscript.lua:37: '}' 预计在 '=' 附近

java - 在Java中将字符串插入字节数组中的某个索引处

javascript - 我在 jquery 上的循环代码不适用于循环内的 .each

javascript - Django Rest 框架 + ReactJS : Whats wrong with my API?

javascript - JQuery UI 对话框 html() 和淡入淡出崩溃

javascript - IE 10 和 android 4.x 上的 webcrypto 解决方案