您的位置:首页 > Web前端

cvte春招前端笔试编程题记录

2018-03-11 13:06 267 查看
昨天做了cvte的笔试题,想了一下,题目不难,但感觉自己做的不理想。。。
废话不多说,进入正题。
第一道编程题,要求如下:
实现一个函数,输入的数组是2n项,则把这数组以2个为一组分割,并使每个分割后的数组的最小值相加最大,并输出。
例如:【1,4,3,2】输出为4;
【1,5,7,9,4,12】输出为15.
第二道:html5中的localstroage是没有时间限制的,二次封装localstorage使其带有过期机制,过期后删去所有数据。
第一题,一开始我有点懵,没理解好题意,喝口水冷静一下,想到,要使每个分割后的数组的最小值相加最大,即是要让每个小的数和只比它大一点的数一组,那么别的数组分割后的数组的最小值就会大了。那么只要对输入的数组进行从小到大排序,之后分割就行,不多说,上码:
function minmax(m){
          //首先判断输入的数组是否是2n
        if(m.length%2 === 0){
        m.sort(function(a,b){return a-b;});//对数组进行排序 
        var  total=0;
        for(let i = 0;i<m.length;i+=2){
            total+=m[i];
        }
        console.log(total);
        }
        else {
        console.log("数组应为2n个成员");

        }
}
现在回想,当时是不能跳出来调试的,估计语法有好多漏洞。。。。。。还有就是,我没有将数组分割开,我估计他们想考察的是数组的分割,心疼自己。
第二道:
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>cache storage</title>
</head>
<body>
<script>
'use strict'
;(function () {
var ls = window.localStorage

function oops () {
return console.warn('your browser is not supported localStorage API')
}

function getItem (key) {
var data = ls.getItem(key)  //在没有数据项的情况下,data为null
data = JSON.parse(data)||{} 

if (data.time === 0) {// 上句如是data = JSON.parse(data),在data.time时,就会报错。所以调整成data = JSON.parse(data)||{}
return data.value
} else if (Date.now() > data.time) { // 判断是否超时
ls.removeItem(key)
return ''
} else {
return typeof data.value !== 'undefined' ? data.value : ''
}
}

function setItem (key, value, time) {
if (typeof key === 'undefined') {return}
var data = {
time: time ? Date.now() + time : 0,
value: value
}
data = JSON.stringify(data)
try {
ls.setItem(key, data)
} catch (e) {
ls.clear()
ls.setItem(key, data)
}

}

function removeItem (key) {
ls.removeItem(key)
}

function clear () {
ls.clear()
}

window.cacheStorage = {//浏览器支持使用localStorage,不支持输出提示语
getItem: ls ? getItem : oops,
setItem: ls ? setItem : oops,
removeItem: ls ? removeItem : oops,
clear: ls ? clear : clear
}
})()
</script>
</body>
</html>
  到此结束了,笔试结果不重要啦,希望自己能继续成长。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: