美文网首页
去重的方法(数组、字符串)

去重的方法(数组、字符串)

作者: 西川楚人 | 来源:发表于2018-09-09 12:38 被阅读0次

    数组去重
    (1)
    思路:利用一个函数中for遍历查找出重复元素,有则返回turn,如果全部备遍历完后没则返回false
    利用另一个函数判断上一个返回的值
    方法:
    //去重
    //遍历一遍找出重复元素
    //方法是:将新数组与原数组进行对比,第一次出现就添加到新数组里,否则就不进行操作。
    function has(arra,val){//是否有重复的数值,存在返回turn,否则false
    for(let i=0,len=arra.length;i<len;i++){
    if(arra[i]===val)//存在
    return true;
    }
    return false;
    }
    function strOne(array){
    var newArray = [];
    for(var i in array){
    if(!has(newArray,array[i]))
    newArray.push(array[i]);
    }
    return newArray;
    }
    console.log(strOne(arr));
    (2)(es6新增)
    方法:
    function dedupe(array){
    return Array.from(new Set(array));
    }
    console.log(dedupe(arr));
    (3)
    方法:
    function de_weight (array){
    var newArray = [];
    for(let i=0,len=array.length;i<len;i++){
    for(let j=i+1;j<len;j++){
    if(array[i]===array[j])
    j=++i;
    }
    newArray.push(array[i]);
    }
    return newArray;
    }
    (4)
    方法:
    //利用对象来给数组去重
    var arr = [12,1,1,12,45,2,3,45,5,6,7,89,9,9,89,1,1,1];
    var conet = {};
    for(let i=0,len=arr.length;i<len;i++){
    conet[arr[i]] = arr[i];
    }
    console.log(Object.values(conet));
    字符串去重:
    (1)
    var str = "dwqewdfsafdfwqewdsadsa";
    var strArray = [],newArray=[];
    console.log(str.charAt(4));
    console.log(str.length);
    for(let i=0,len=str.length;i<len;i++){
    strArray[i] = str.charAt(i);
    }
    console.log(strArray);
    for(let i=0,len=strArray.length;i<len;i++){
    for(let j=i+1;j<len;j++){
    if(strArray[i]===strArray[j]){
    j=++i;
    }
    }
    newArray.push(strArray[i]);
    }
    console.log(newArray);
    str = "";
    for(let i=0,len=newArray.length;i<len;i++){
    str += newArray[i];
    }
    console.log(str);
    (2)
    /**
    *思路:对象不会获取相同的属性,从而将属性与属性值对应,拿出属性值,组成新的数组
    */
    var str = "dwqewdfsafdfwqewdsadsa";
    var conet ={};
    for(let i=0,len=str.length;i<len;i++){
    conet[str.charAt(i)] = str.charAt(i);
    }
    let string = Object.values(conet);//获取对象里的对应的值
    console.log(typeof string);
    console.log(string);
    string = string.join("");//将数组对象转换变成字符串
    console.log(string);

    相关文章

      网友评论

          本文标题:去重的方法(数组、字符串)

          本文链接:https://www.haomeiwen.com/subject/urirgftx.html