您的位置:首页 > 职场人生

[置顶] 前端开发面试题(应届生)-- js篇

2018-03-31 15:48 399 查看
前言
        如今的很多互联网公司,尤其是一些大公司总喜欢出各种算法题,考察程序员的逻辑思维能力。这是本人参加应聘时做过的面试题目,还有一些是网上收集的在面试时出现率比较高的算法题,现在拿出来跟大家一起分享,希望对一些前端开发应聘者能带来一些帮助,面试时即使做的题目跟这些不一样,但是这些做题的思想都是通用的。

题目1:
这是一个9*9的乘法口诀表,是完全用算法生成的,下来请用javascript完成生成一个这样的乘法口诀表,要求和图片一模一样,注意边框,注意字体,注意一切细节,不允许使用table。


说明:使用document.write()创建HTML标签并添加class;通过递归方法成一个9*9乘法表;再使用css给乘法表添加样式,使其变成等腰三角形。(关于边框重叠的问题,可以通过设置margin为负值来消除)JavaScript代码:document.write("<div class='box'
a30b
>"); //最外层div
for (var i=1; i<=9; i++) { //行
document.write("<div>");
for (var j=1; j<=i; j++) { //列
document.write("<span class='column'>"+ i + "×" + j + "=" + i*j + "</span>");
}
document.write("</div>");
}
document.write("</div>");CSS代码:.box {
text-align: center;
}
.column {
display: inline-block;
width: 51px;
height: 17px;
font-size: 12px;
border: 1px solid #E2E2E2;
margin-right: -1px;
margin-bottom: -1px;
padding: 5px 10px;
}

题目2:
通过一个输入框,输入一个自定义的数组,例如1,4,5,23,2,17,24,10000000。请把他按照中间高两边低进行排序,最后的结果是1,4,5,23,10000000,24,17,2,算法越准确越好,请注意左右翼数据数据的平衡性。
分析:应该分情况处理。1、如果数组的长度为偶数,则直接分为两组,第一组从小到大排序,第二组从大到小排序,两组拼接输出。 2、如果数值的长度为奇数,取出最大那个数,剩下的偶位数数组进行1操作,然后得到的两个数组跟最大那个数拼接输出。

JavaScript代码:var cont = prompt("请输入一个数组,并用英文逗号隔开");
var arr = cont.split(",");
var arr1=[];
var arr2=[];
var max =Math.max.apply(null, arr);
if (arr.length%2==0) { //偶数
arrSplit(arr,arr1,arr2); //调用排序函数
document.write(arr1.concat(arr2)); //拼接arr1和arr2数组
}
else{ //奇数
arr.sort(function(a, b){ //对数组进行排序
return b-a;
});
var newArr = arr.slice(1);         //除掉最大一个的数,得到偶位数的数组
arrSplit(newArr,arr1,arr2)
arr2.unshift(max);                         //把最大那个数插入arr2
document.write(arr1.concat(arr2));
}

function arrSplit(arr,arr1,arr2){ //封装一个对偶数位数组进行分割和排序的函数
var Array = []; //定义一个数组用于存放arr1和arr2的返回值
for (var i=0; i<arr.length/2; i++) { //拆分成两个数组
arr1[i]= arr[i];
arr2[i]= arr[i+arr.length/2];
}
arr1.sort(function (a, b){ //升序
return a-b;
});
arr2.sort(function (c, d){ //降序
return d-c;
});
Array[0]=arr1;
Array[1]=arr2;
return Array; //返回arr1和arr2数组
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: