在jQuery.unique()
的描述中官方文档中的方法我发现:
... this only works on arrays of DOM elements, not strings or numbers.
但是,如果我们对一些带有字符串或数字的测试数组尝试该方法,它似乎工作正常:
$.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]
重点是什么?
最佳答案
通过限制文档所说的功能范围,他们可以在以后根据需要灵活地更改它,而不必担心支持超出文档功能的功能。
当前的实现(实际上只是对来自 jQuery 内置的 Sizzle 选择器引擎的 Sizzle.uniqueSort
的引用)主要只是将事物与 ===
进行比较,这解释了为什么它也适用于字符串和数字。但是通过限制范围,他们可以在以后发现更有效的方法(但只适用于 DOM 元素)时更改它。
请注意,它主要是一种内部方法,正如文档中所说:
This function...is chiefly used internally by jQuery.
关于javascript - 为什么 jQuery.unique 不能处理字符串或数字数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14382608/