jQuery数组去重主要涉及到$.inArray()函数,其实这个函数类似于js的index()函数,寻找索引,找不到则返回-1.
代码如下:
var names = ["1","2","3","4","1","2","3","4"];
$.each(names, function(i, el){
if($.inArray(el, names) === -1)//没有匹配
names.push(el);
});
console.log(names);
接下来结果还是没有去重,由于这是很久以前写的代码。当时写的也记不清了,后来查了很多资料后发现,自己的没有写接收的数组。
设了断点也没有走下面的语句。
names.push(el);
从开始到结束,数组也没有改变。后面输出的还是原来的数组。
所以正确的代码应该是有一个数组接收的,如下。
var names = ["1","2","3","4","1","2","3","4"];
var uniqueNames = [];
$.each(names, function(i, el){
if($.inArray(el, uniqueNames) === -1)//没有匹配
uniqueNames.push(el);
});
console.log(uniqueNames);