关于js闭包、数组去重那点事儿

项目不忙的时候,写一些js的方法来稳固一下基础,也便于以后来查询。

1.js闭包

    // 闭包的理解,
    // 1.其实就是实现访问功函数内部的局部变量2.其中函数内部的内存不会被垃圾机制回收(garbage collection)
    // 例1:
    // function f1() {
    //     var n = 99;
    //     setter = function () {
    //         n += 1;
    //     }

    //     function f2() {
    //         console.log(n)
    //     }
    //     return f2;
    // }
    // f1()(); 99
    // 即嵌套函数就可以实现访问函数内部的局部变量
    // 例2:在调用f2一次之后,调用setter函数就会使n的值发生改变
    // var result = f1();
    // result(); //99
    // setter();
    // result(); //100
    // ps:注意必须要把f1存储在全局变量中,这样变量才能发生改变,不然访问的还是f1;
    // 例如 
    // // f1()(); 99
    // // setter();
    // // f1()()99

2.js去重

    // 1.直接遍历
   
    var arr = [1,2,3,3,5,5,5,9];
    // function unique(array){
    //     var result =[];
    //     array.forEach(element => {
    //         if(result.indexOf(element)===-1){
    //             result.push(element)
    //         }    
    //     });
    //     return result;
    // }
    // console.log(unique(arr))
    //2.es6set
    // console.log([...new Set(arr)]);
        // console.log(Array.from(new Set(arr)));
    //   3.filter
    // var result = arr.filter(function(item,index) {
    //     return arr.indexOf(item)===index;
    // })
    // console.log(result)
    console.log(arr.indexOf(3))
发布了21 篇原创文章 · 获赞 4 · 访问量 2741

猜你喜欢

转载自blog.csdn.net/smallico/article/details/100661986