美文网首页
前端问的两道笔试题:

前端问的两道笔试题:

作者: 陈二狗想吃肉 | 来源:发表于2021-10-12 14:26 被阅读0次

    1,下面输出结果是什么?

    var result = [];

    var a = 3;

    var total = 0;

    function foo(a) {

    var i = 0;

    for(; i < 3; i++) {

    result[i] = function() {

    console.log(total);

    total += i * a;

    console.log(i, a, total);

    }

    }

    }

    foo(1);

    result[0](); // 3

    result[1](); // 6

    result[2](); // 9

    ---

    2,

    a=[{id:2, name: 'p'}, {id: 4}, {id:2}, { id: 55}]

    对象数组去重,生成一个新数组,数组里面每个元素的id属性值都不重复

    ---

    解:

    第一题:0

    3 1 3

    3

    3 1 6

    6

    3 1 9    主要考察闭包与for循环后i的值已经固定是3

    第二:

    function isExist(arr,value, key) {

        for (let i = 0, len = arr.length; i < len; i++) {

            if (arr[i][key] === value) {

                return i;

            }

        }

        return -1;

    }

    function arrMerge(array) {

        let newArr = [];

        array.forEach(item => {

            let res = isExist(newArr,item.id, "id");

            if (res == -1) {

                newArr.push(item);

            }

        });

        return newArr;

    };

    arrMerge(arr)

    相关文章

      网友评论

          本文标题:前端问的两道笔试题:

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