百度前端笔试3.30号
凉凉
选择题除了前端的还考了操作系统,Linux,然后canvas这一块我不熟悉只能蒙,还有构造函数原型这一块各种嵌套然后考变量的值是多少
算法题三道,
第一道,给定一组数,分别找出另一组数中比其大的数的个数,超时,AC50%
第二道,给定一组数和概率p,求最大的数学期望,不会
第三道,实现上下左右控制表格中的有色单元格视觉上移动的效果,DOM不熟,凉凉
结束之后把第三题做了一下,就是API不熟悉,然后当时心态不好,很慌
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<style>
table.game {
font-size: 14px;
border-collapse: collapse;
width: 100%;
table-layout: fixed;
}
table.game td {
border: 1px solid #e1e1e1;
padding: 0;
height: 30px;
text-align: center;
}
table.game td.current{
background: #1890ff;
}
</style>
<div id="jsContainer">
<table class="game">
<tbody>
<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td><td></td><td class="current"></td><td></td><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
</tbody>
</table>
</div>
<script>
function bind() {
document.onkeydown = event => {
if (!event) return;
var code = event.keyCode || '';
if (!{'37': 1, '38': 1, '39': 1, '40': 1}[code]) return;
event.preventDefault && event.preventDefault();
//TODO: 请实现按键控制
let box = document.getElementsByClassName("current")[0];
let parent = box.parentNode;
let index = box.cellIndex;
let len = parent.childNodes.length;
let rowIndex = parent.rowIndex;
//
let grand = document.getElementsByTagName('tbody')[0];
let grandLen = grand.childElementCount;
switch (code){
case 37: {
if(index === 0){
parent.childNodes[len - 1].classList.add("current");
}else{
parent.childNodes[index-1].classList.add("current");
}
box.classList.remove("current");
break;
}
case 39: {
if(index === len-1){
parent.childNodes[0].classList.add("current");
}else{
parent.childNodes[index+1].classList.add("current");
}
box.classList.remove("current");
break;
}
case 38: {
if(rowIndex === 0){
grand.children[grandLen-1].childNodes[index].classList.add("current");
}else{
grand.children[rowIndex-1].childNodes[index].classList.add("current");
}
box.classList.remove("current");
break;
}
case 40: {
if(rowIndex === grandLen-1){
grand.children[0].childNodes[index].classList.add("current");
}else{
grand.children[rowIndex+1].childNodes[index].classList.add("current");
}
box.classList.remove("current");
break;
}
}
};
}
bind();
</script>
</body>
</html> ---第一次发帖--------------------------------------
