我正在使用“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
关于jQuery.unique() 不返回完全不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8137756/