jQuery的等效underscore.js' GROUPBY的(jQuery equiva

2019-08-05 23:44发布

是否有jQuery的内置函数,它相当于http://underscorejs.org/#groupBy ?

任何变通办法?

谢谢

Answer 1:

号的jQuery不是为数据处理制成,但对于DOM,Ajax和动画-那些效用函数为eachmapgrep所需要的内部吸。

使用下划线,没有错吧! 如果你不希望加载整个脚本,你可以很容易地复制groupby从源功能 ,无论你需要它。 不要忘了其产地添加评论。



Answer 2:

这里是一个jQuery适应斜视的本地JavaScript的答案 :

$.fn.groupBy = function(predicate) {
  var $array = $(this),
      grouped = {};

  $.each($array, function (idx, obj) {
    var $obj = $(obj);
        groupKey = predicate($obj);
    if (typeof(grouped[groupKey]) === "undefined") {
      grouped[groupKey] = $();
    }
    grouped[groupKey] = grouped[groupKey].add($obj);
  });

  return grouped;
}

^这将返回的哈希{KEY_NAME:jQueryObjects}


和使用,在这种情况下, 组元素( $yourElements )由HTML name属性

var groupedByName = $yourElements.groupBy(function (obj) {
  return $(obj).attr('name');
});


文章来源: jQuery equivalent of underscore.js' groupBy