jQuery.unique() 不返回完全不同的值

标签 jquery

我正在使用“jQuery.unique()”函数将不同的数组值从一个数组放入另一个数组,但第二个数组中的值似乎不包含不同的值。

var nonuniqueArray = ['AMI:8244','AMI:29126','AMI:31591','AMI:31591','AMI:31591','AMI:31591','AMI:29126'];
uniqueArray = $j.unique(nonuniqueArray);
alert (uniqueArray);

警报值为:AMI:29126、AMI:31591、AMI:29126、AMI:8244

我注意到,如果数组中相似的值被分组在一起,那么它就可以正常工作,例如,如果“AMI:29126”被分组在一起,看起来就可以了。

非常欢迎对上述代码的问题提出任何建议。

非常感谢:)

最佳答案

$.unique 不是为此创建的,请参阅以下网址:http://api.jquery.com/jQuery.unique/

The $.unique() function searches through an array of objects, sorting the array, and removing any duplicate nodes. This function only works on plain JavaScript arrays of DOM elements, and is chiefly used internally by jQuery.

你可以做的就是先对其进行排序,然后使用 unique,这并不完全是它的组成部分,但它可以工作。

var nonuniqueArray = ['AMI:8244','AMI:29126','AMI:31591','AMI:31591','AMI:31591','AMI:31591','AMI:29126'];
var sortedArray = Array.sort(nonuniqueArray );
var unique = $.unique(sortedArray);

$.each(unique , function(k, v){
    $("div").append(v + "<br />");
});

结果:

AMI:8244
AMI:31591
AMI:29126

现场演示:http://jsfiddle.net/9x4dR/

关于jQuery.unique() 不返回完全不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8137756/

相关文章:

javascript - ajax 函数在页面加载时未触发

javascript - 使用jquery选中复选框时如何制作键值对数组?

非零持续时间的 jQuery 隐藏/显示在 Firefox 中不起作用(但在 Chrome 中起作用)

javascript - 使用 javascript queryselectorall 而不是 jquery 选择器

javascript - HTML 表单未提交

javascript - jquery 将事件类添加到标签

javascript - keyup 更改未在 js 文件中触发

javascript - jQuery 模态对话框不会因用户输入而停止

javascript - 在 Select2 中按名称排序

php - WooCommerce 对结帐字段输入执行操作