javascript - 为什么 jQuery.unique 不能处理字符串或数字数组?

标签 javascript jquery arrays

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/

相关文章:

javascript - WebkitTransform 不流畅

javascript - 职位列表网站 - 让我的客户添加新的

javascript - 尝试单击时菜单不会保持打开状态

javascript - Clickable <li> - 最后一项的点击功能传播到其他项

javascript - 默认按钮 div

java - 当元素超过其大小的 1/2 时调整数组大小

javascript - 用于查找基于时间的事件的最佳 Javascript 算法

c# - 从数组中只选择最好的项目

javascript - 如何仅当组件 Angular 4 中的服务变量状态更改时才运行函数

javascript - while 循环因 jquery 中的某些数学函数而崩溃