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

Vis*_*ioN 4 javascript arrays jquery

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]
Run Code Online (Sandbox Code Playgroud)

有什么意义?

T.J*_*der 6

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

当前的实现(实际上只是对Sizzle.uniqueSortjQuery内置的Sizzle选择器引擎的引用)大多只是比较一下===,这就解释了为什么它对字符串和数字也适用.但是通过限制范围,如果有一些更有效的方法可以在以后找到它们,它们可以在将来改变它(但它只适用于DOM元素).

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

这个函数...主要由jQuery内部使用.