快來(lái)看JS的的幾個(gè)常用算法(持續(xù)更新中)

數(shù)組去重

    // 第一種方法
    let arr = [1,1,2,3,4];
    function fun(v) {
        return Array.from(new Set(v))
    }
    console.log(fun(arr)) //[1,2,3,4]
    // 第二種方法
    let qc= [...new Set(arr)]
  console.log(qc) //[1,2,3,4]



數(shù)組并集

    let arr0 = ['a','b','c'];
    let arr2 = ['c','d'];
    let a=new Set(arr0);
    let b=new Set(arr2);
    let bj = new Set([...a,...b]);
  console.log(bj);//{"a", "b", "c", "d"}



數(shù)組交集

  let jj = new Set([...a].filter(x=>b.includes(x)));
  console.log(jj);//{"c"}


數(shù)組差集

    let cj = new Set([...a].filter(x=>!b.includes(x)));
  console.log(cj);//{"a", "b"}


統(tǒng)計(jì)數(shù)組相同項(xiàng)的個(gè)數(shù)

    let arr6=['a','a','a','b','c','c'];
    let arr6obj=arr6.reduce(function(obj,name){
        obj[name]=obj[name]?++obj[name]:1;
        return obj;
    },{})
  console.log(arr6obj)// {a: 3, b: 1, c: 2}



數(shù)組方法reduce()實(shí)現(xiàn)filter、map

    let arr7=[2,3,10];
    const arro=arr7.reduce(function(list,num){
        num=num*2;
        if(num>=20){
            list.push(num)
        }
        return list;
    },[])
  console.log(arro);//[20]


字符串轉(zhuǎn)換為數(shù)字

    let num1='1' * 1;
  console.log(typeof num1) //number



使用Boolean過(guò)濾數(shù)組中的所有假值

    let jz=[0,null,false,NaN,1,2];
    const filter1=arr1=>arr1.filter(Boolean);
  console.log(filter1(jz)) //[1,2]



取整

    let num2=1.223;
  console.log(num2|0);//1



判斷奇偶

    let num3=3;
  console.log(!!(num3 & 1));//true



精確到指定位數(shù)(取小數(shù)第一位)

    let num4=6.222;
  console.log(num4.toFixed(1));//6.2



解構(gòu)

    let [rr,aa]=[1,2];
  console.log(rr);//1


使用解構(gòu)交換數(shù)值

    [rr,aa]=[aa,rr];
  console.log(rr);//2



判斷數(shù)據(jù)類型

    let ee=[1,12];
    let ongjj={
        name:'maomin'
    }
    function isType(arr) {
        return Object.prototype.toString.call(arr)
    }   
    console.log(isType(ee));//[object Array]
  console.log(isType(ongjj));//[object Object]



字符串轉(zhuǎn)化為對(duì)象

    let stringobj='{"id":0,"name":"張三","age":12}';
    let d3=JSON.parse(stringobj);
  console.log(d3)//{id: 0, name: "張三", age: 12}


對(duì)象轉(zhuǎn)化為字符串

    let objj={
        id:0,
        name:'maomin'
    }
    let d4=JSON.stringify(objj)
  console.log(d4);//{"id":0,"name":"maomin"}


字符串轉(zhuǎn)化為數(shù)組

    let stringww="a,b,c,d,e,f";
  console.log(stringww.split(","))//["a", "b", "c", "d", "e", "f"]



數(shù)組轉(zhuǎn)化為字符串

    let arr9=['l','o','v','e'];
  console.log(arr9.join('-'))



去除字符串指定符號(hào)

    var stre="a,b,c,d";
    function clear(str) {
        str = str.replace(/,/g, "");//取消字符串中出現(xiàn)的所有逗號(hào)
        return str;
    }
    console.log(clear(stre))//abcd



作者:Vam的金豆之路

主要領(lǐng)域:前端開發(fā)

我的微信:maomin9761

微信公眾號(hào):前端歷劫之路