jquery 里面对数组操作 怎么去除重复!!!!!!!!!急)

将yjTeacherId.concat(sids)这个数组中相同项去掉。用jquery
第一种
//去除有相同id的id。[1,2,2,3]=[1,2,3]
upTeacherId=yjTeacherId.concat(sids).join(",");

第二种
//去除有相同id的两个id。[1,2,2,3]=[1,3]
upTeacherId=yjTeacherId.concat(tids).join(",");

8个回答

用jquery干嘛,js几行代码就搞定了

var arr=[1,2,3,2,3,5,1];

function unique(arr,removeAll){
    arr.sort(function(a,b){return a-b});//先排序
    var s=arr.join(',')+',';
    arr= s.replace(/(\d+,)\1+/g,removeAll?'':'$1').replace(/,$/,'').split(',');
    for(var i=0;i<arr.length;i++)arr[i]=parseInt(arr[i],10);//重新转为数字
    return arr
}

console.log(unique(arr))//[1,2,3,5]
console.log(unique(arr,true))//[5]

showbo
支付宝加好友偷能量挖,胡杨等着我的招呼 回复chaoggzxi44: 你用了我的代码测试没。。我这里测试没有问题,你直接修改arr数组进行测试看看。还是有什么浏览器,我这里ie8,firefox,chrome都没问题
5 年多之前 回复
chaoggzxi44
chaoggzxi44 就去掉了一个18吖。。
5 年多之前 回复
chaoggzxi44
chaoggzxi44 aa:18,29,18,127,129,18,27 youth.js (第 426 行) v_ArrayResult:18,27,18,29,127,129 youth.js (第 430 行) upTeacherId。:18,27,18,29,127,129
5 年多之前 回复
showbo
支付宝加好友偷能量挖,胡杨等着我的招呼 回复chaoggzxi44: 没问题啊。18,28,29,18,28,18,28,29,32,99 为这个过滤后为18, 28, 29, 32, 99,全部去重是32, 99,这个去重函数不是直接操作原始数组的,你要重新给你的变量赋值过。
5 年多之前 回复
chaoggzxi44
chaoggzxi44 aa:18,28,29,18,28,18,28,29,32,99 youth.js (第 426 行) v_ArrayResult:18,28,29,32,99,18,28,29 youth.js (第 430 行) upTeacherId。:18,28,29,32,99,18,28,29
5 年多之前 回复
chaoggzxi44
chaoggzxi44 var aa= yjTeacherId.concat(sids); //var v_ArrayResult = aa.deleteEleReg(); //var upTeacherId = v_ArrayResult.join(","); var v_ArrayResult = unique(aa); var upTeacherId=v_ArrayResult.join(","); //upTeacherId=uniQueue(yjTeacherId.concat(sids)).join(","); console.log("去除有相同id的id。:"+upTeacherId); console.log("去除有相同id的id。:"+upTeacherId); 出来的就是没有去掉重复项。是不是参数类型不对应?
5 年多之前 回复
chaoggzxi44
chaoggzxi44 console.log(upTeacherId)出来是正确的,可是保存到数据库中,又变回去了。(重复项还在)
5 年多之前 回复
chaoggzxi44
chaoggzxi44 //去除有相同id的id。[1,2,2,3]=[1,2,3] var aa= yjTeacherId.concat(sids); //var v_ArrayResult = aa.deleteEleReg(); //var upTeacherId = v_ArrayResult.join(","); var upTeacherId=(unique(aa)).join(","); //upTeacherId=uniQueue(yjTeacherId.concat(sids)).join(","); console.log("去除有相同id的id。:"+upTeacherId);
5 年多之前 回复

$.unique()这个方法最简洁了。

star8521
武穆逸仙 $.unique(arr);
接近 4 年之前 回复
chaoggzxi44
chaoggzxi44 请问第二种//去除有相同id的两个id。[1,2,2,3]=[1,3]这个要怎么做
5 年多之前 回复

//去除数组中重复的项
var array=[1,2,3,3,2,4,5,8,2,1];
uniQueue(array);
function uniQueue(array){
var arr=[];
var m;
while(array.length>0){
m=array[0];
arr.push(m);
array=$.grep(array,function(n,i){
return n==m;
},true);
}
return arr;
}
结果:[1,2,3,4,5,8]

遍历数组,位图法,统计元素个数,超过1的,不加入结果的数组

    //1移除一个数组里重复的数字: 创建一个对象,利用对象的属性值进行判断后才对目标数组操作
    function removeDuplicate(arr){
        var exists = {}, outArr = [], ele;
        for(var i=0;i<arr.length;i++){
            ele = arr[i];
            if(!exists[ele]){
                outArr.push(ele);
                exists[ele] = true;
            }
        }
        return outArr;
    }
    alert(removeDuplicate([1,2,3,4,5,6,7,8,8,7,6,5,4,3,2,1,3]));

    //2 利用indexOf 和 forEach
    function removeDups(arr){
        var nonDups = [];
        arr.forEach(function(value){
            if(nonDups.indexOf(value) == -1){
                   nonDups.push(value);
            }
        });
        return nonDups;
    }
    alert(removeDups([1,2,3,4,5,6,7,8,8,7,6,5,4,3,2,1,3]));
</script>

用这个:

$.unique()

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐