首页 > 应用开发 > IT综合 > 企业面试真题—01,02
企业面试真题—01
var arr1= [1,1,1,2,3,3,4,5,6], arr2=[4,4,4,5,5,6,7,8,8,9];
编写函数实现数组合并去重:arr = [1,2,3,4,5,6,7,8,9]
function mergeArr(a1, a2){
//利用对象的hash去重
var temp = {};
//找到长度较大的数组
var len = Math.max(a1.length, a2.length);
for( var i =0; i <len; i ++){
//用一个循环遍历2个数组, 因为不能保证数组长度一致
//因此需要判断是否为空
//若不为空, 则以key的形式添加到temp中
a1[i] ?temp[a1[i]] = 1 :"";
a2[i] ?temp[a2[i]] = 1 :"";
}
//将对象的key全部取出,则是最终去重合并后的数组
//但是取出的key都是字符串类型, 要还原成数字的话
//借助map方法
return Object.keys(temp).map(Number);
}
企业面试真题—02
有如下列表的DOM结构,需要在点击时获取对应的innerHTML;
要求:不能修改DOM; 使用原生javascript; 考虑js性能
//考虑到li数量太多, 因此使用事件委托方式
var oDiv = document.querySelector("div");
oDiv.addEventListener("click", function(evt){
var e = evt || event; //处理IE兼容问题
//e.target表示事件源对象, 即事件触发的源头
//当点击Li的时候, 则条件成立
var target = e.target || e.srcElement; //处理兼容问题
if(target.tagName = "LI") {
console.log(e.target.innerHTML);
}
})
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69923331/viewspace-2695141/ ,如需转载,请注明出处,否则将追究法律责任。