为什么jQuery.unique无法使用字符串或数字数组?

时间:2013-01-17 15:36:42

标签: javascript jquery arrays

在官方文档中对jQuery.unique()方法的描述中,我发现:

  

...这只适用于DOM元素的数组,而不是字符串或数字。

但是,如果我们尝试使用字符串或数字的某些测试数组的方法,它似乎工作正常:

$.unique(["Alex", "Andrew", "Maria", "Alex", "Nick", "Andrew", "Eugene"]);
// ["Eugene", "Nick", "Maria", "Andrew", "Alex"]

$.unique([1, 3.5, -1e5, 2, 3.5, 1, 1000, -1e5]);
// [1000, 2, -100000, 3.5, 1]

有什么意义?

1 个答案:

答案 0 :(得分:6)

通过限制文档说它可以做的范围,他们可以灵活地在以后必要时更改它,而不必担心支持超过记录的功能。

当前的实现(实际上只是对来自jQuery内置的Sizzle选择器引擎的Sizzle.uniqueSort的引用)大多只是将事物与===进行比较,这解释了为什么它对字符串和数字的工作正常好。但是通过限制范围,如果有更有效的方法可以在以后找到它们,它们可以在将来改变它(但是它只适用于DOM元素)。

请注意,它主要是一种内部方法,因为文档也说:

  

此函数...主要由jQuery在内部使用。