2013-01-17 30 views
4

jQuery.unique()方法的官方文档的描述,我发现:为什么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] 

要点是什么?

+2

很有可能它是在源代码中更新的,但不是在API文档中更新的。 –

+5

我认为问题在于jQuery人员不希望支持您的方法的“标签外”用法。它在文档中声明该方法仅用于jQuery的内部使用。哦,罗里说。 –

+0

@RoryMcCrossan看起来像SO使用jQuery 1.7.1,我的Chrome控制台提供了相同的结果。所以对于1.7.1它具有相同的功能。否则,很长一段时间文档不会更新。 – VisioN

回答

6

通过限制文档所能做的事情的范围,他们可以根据需要灵活地更改它,而不用担心支持超过文档化功能。

当前的实现(这实际上只是一个从内置到jQuery的滋滋声选择引擎Sizzle.uniqueSort引用)大多只是用===比较的东西,这也是为什么它工作正常的字符串和号码以及。但是通过限制范围,他们可以在将来改变这种情况,如果有一些更有效的方式来做到这一点,他们以后会发现(但只适用于DOM元素)。

请注意,这是主要的内部方法,如文档也说:

此功能...主要是由jQuery的内部使用。

相关问题