jQuery.unique允许您获取数组的唯一元素,但是文档说该函数主要供内部使用,并且仅对DOM元素起作用。另一个SO响应说该unique()函数可以在数字上使用,但是此用例不一定是将来的证明,因为在文档中未明确说明。
unique()
鉴于此,是否存在“标准” jQuery函数,用于仅访问数组中的唯一值(特别是整数之类的基元)?(显然,我们可以使用函数构造一个循环each(),但是我们是jQuery的新手,并且想知道是否为此使用了专用的jQuery函数。)
each()
您可以array.filter用来返回每个不同值的第一项-
array.filter
var a = [ 1, 5, 1, 6, 4, 5, 2, 5, 4, 3, 1, 2, 6, 6, 3, 3, 2, 4 ]; var unique = a.filter(function(itm, i, a) { return i == a.indexOf(itm); }); console.log(unique);
如果主要支持IE8或更低版本,请不要使用不受支持的filter方法。
filter
除此以外,
if (!Array.prototype.filter) { Array.prototype.filter = function(fun, scope) { var T = this, A = [], i = 0, itm, L = T.length; if (typeof fun == 'function') { while(i < L) { if (i in T) { itm = T[i]; if (fun.call(scope, itm, i, T)) A[A.length] = itm; } ++i; } } return A; } }