2 dxw827406 dxw827406 于 2016.04.17 15:00 提问

JavaScript数组值去重,但是返回的类型和原类型不一样, 怎么转换

var arr = [2,1,2,10,2,3,4,1,85,321,3,4,65,10,24];

    function uniq(newarr){
        function toObject(arr) {
            var obj = { };
            for(var i=0 ;i<arr.length ;i++){
                obj[ arr[ i ] ]=true;
            }
            return obj ;
        }
        function keys(obj){
            var arr = [ ] ;
            for(var attr in obj){
                if(obj.hasOwnProperty(attr)){
                arr.push(parseInt(attr));
                }
            }
            return arr;
        }   
        return keys(toObject(newarr));
    }

    console.log(uniq(arr));

2个回答

liu1114846482
liu1114846482   2016.04.17 16:29
已采纳

var arr = [2,1,2,10,2,3,4,1,85,321,3,4,65,10,24];
function onRepeat(){
var json={};
var temArr=[];
for(var i=0;i<arr.length;i++){
(function(n){
json[n]=1;
})(i);
}
for(var key in json){
temArr.push(json[name]);
}
return temArr;
}
搞定

dxw827406
dxw827406 var arr = [2,1,2,10,2,3,4,1,85,321,3,4,65,10,24]; function noRepeat(arr){ var obj = { }; var temarr = [ ] ; for(var i=0 ;i<arr.length ;i++){ obj[ arr[ i ] ]=arr[i]; } for(var attr in obj){ if(obj.hasOwnProperty(attr)){ temarr.push(obj[attr]); } } return temarr; } console.log(noRepeat(arr));
一年多之前 回复
dxw827406
dxw827406 谢谢 有了思路了
一年多之前 回复
liu1114846482
liu1114846482 name改成key,写的时候大意了
一年多之前 回复
liu1114846482
liu1114846482 名字起错了,应该是noRepeat
一年多之前 回复
qq970973742
qq970973742   2016.04.18 09:45

推薦使用filter()函數.其他都一樣.最好別總是用循環

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!