• 2015年 阿里2道前端笔试题+堆糖2道前端笔试题


    阿里前端笔试题

    1、一个表格HTML代码如下

    <table id="table1">

      <tbody>

        <tr><td>1</td><td><button>Delete</button></td></tr>

        <tr><td>2</td><td><button>Delete</button></td></tr>

        <tr><td>3</td><td><button>Delete</button></td></tr>

      </tbody>

    </table>

    当使用者按下”Delete”按钮时, 将所按到的行(tr)删除, 请使用原生JavaScript实现。

    <script type="text/javascript">
    var table = document.getElementById('table1');
    table.addEventListener('click', function(event){
    var tr = event.target.parentNode.parentNode;
    tr.parentNode.removeChild(tr);
    });
    </script>

    2、背景:
        1.对象A直接调用对象B的某个方法,实现交互逻辑。但是导致的问题是A和B紧密耦合,修改B可能导致A调用B的方法失效。
        2.为了解决耦合导致的问题,我们可以设计成:
        对象A生成消息->将消息通知给一个事件消息处理器(Observable)->消息处理器将消息传递给B
        具体的调用过程变成: A.emit(’message’,data);   B.on(‘message’,function(data){  });
        请实现这一事件消息代理功能

        //请将事件消息功能补充完整
        function EventEmitter(){

        }

    堆糖2道前端笔试题

    1、写一个jquery组件,获取form表单中所有元素的键/值,并以Ajax方法提交。不能使用JQ提供的序列化方法。

    2、

    有一个数组 3,10,45,6,7,8,9,9,6,5,42,54,6,5,76,7,54,45,45,67,67,4,100,7,32,20,42,84,81,22,每次随机删除其中一个元素,问经过5次删除后,提问 新数组中第16个元素,在原数组中所在位置。

    //answer

     只需要创建一个和原输入数组同样大小的bolean数组,初始化全为0,删除原数组中某个元素的时候,对应将boolean数组同样索引的元素置1,这样经过5次删除之后,顺序遍历boolean数组,跳过置1的元素,知道访问第16个值为0的元素,输出该元素的数组下标
     
    //附:个人解法

    var array_var = array_ori = [3,10,45,6,7,8,9,9,6,5,42,54,6,5,76,7,54,45,45,67,67,4,100,7,32,20,42,84,81,22];
    var array_boo, array_len,num_rand,k,count;
    var count_del = 5,
    //新数组中元素的位置
    elem_newarray = 16;

    array_len = array_ori.length;
    array_boo = new Array(array_len);
    //array_boo 数组初始化
    for(var i=0; i<array_len; i++){
    array_boo[i] = 0;
    }

    for(var j=0;j<count_del;j++){
    //产生随机数
    num_rand = Math.round( Math.random()*(array_var.length) );
    array_var.splice(num_rand,1);
    //删除原数组中某个元素的时候,将对应boolean数组同样索引的元素置1
    k = count = 0;
    while(true){
    //记录array_boo数组中0的个数
    if (!array_boo[k]) {
    count++;
    }
    if (count == num_rand) {
    array_boo[k] = 1;
    break;
    };
    k++;
    }
    }

    count = 0;
    for (var z = 0; z<array_len; z++) {
    if (!array_boo[z]) {
    count++;
    }
    if (count == elem_newarray) {
    console.log("新数组中第"+ elem_newarray+"个元素,在原数组中所在位置:"+z);
    break;
    };
    };

     

     

  • 相关阅读:
    k8s 重要概念
    k8s 核心功能
    5 秒创建 k8s 集群
    学习 Kubernetes 的 Why 和 How
    Yeelink初步体验
    为Qemu aarch32添加BeautifulSoup4模块
    实现Qemu aarch32虚拟开发板ping www.baidu.com
    利用/proc/pid/pagemap将虚拟地址转换为物理地址
    加快Qemu Aarch32虚拟开发板的启动速度
    为Qemu aarch32开发板添加sd卡
  • 原文地址:https://www.cnblogs.com/spray1990/p/spray.html
Copyright © 2020-2023  润新知