记cvte前端笔试
来源:互联网 发布:互联网十云计算概念股 编辑:程序博客网 时间:2024/05/17 09:24
前几天CVTE提前批笔试,看完题目感觉还行,前面的题在js高级程序设计教程部分有提到过,下面主要说一下后面的两道编程题:
其中第一道大概要求是统计一个html页面中各个标签出现的次数,本人自己的大概思路如下:
1,首先先获得程序中的所有标签的个数,得到之后做这么一个分析:
2(两层循环),类似于冒泡排序算法,这里假设我先抓取第一个元素,让我的第一个元素跟后面的元素进行比较,假如相同,那么把这个元素压入temp数组中,并在原来的队列里做减一操作,避免后续比较重复;
3.一直比较下去,直到最后,发现再无重复,就把原先的那个也压入temp数组,这里不压入会导致结果少1,就跟你点名一样,点人时不算上自己会少一个人;
4.最后把temp压入tag数组中,并做清零操作,进入下一个循环
废话不多说,上代码如下:
<script type="text/javascript"> var tags = document.getElementsByTagName('*'); //获取所有标签节点 var j=tag.length; //统计全部节点个数 console.log(j); var tagsArr = []; //创建空数组缓冲区 function countTag(){ for (var i = 0; i < tags.length; i++) { tagsArr.push((tags[i].tagName).toLowerCase()); //对标签节点做格式调整,全部转化为小写字母 } // console.log(tagsArr); //定义一个数组用于存放相同的元素 var temp = []; //临时数组用于统计在每次循环里相同标签的个数 var tag =[]; //定义一个空数组用于存放每一个标签,接收每次循环来自temp的值 for (var i = 0; i < tagsArr.length; i++) { //开始循环,思路与冒泡排序类似 for (var j = i+1; j < tagsArr.length+1; j++) { if (tagsArr[i] == tagsArr[j]) { //取第一个,然后与后面的比较,看有多少重复 temp.push(tagsArr[j]); tagsArr.splice(j,1); //如果重复,在 tagsArr中删掉该项,并把它压入temp中 j--; //删除后tagsArr发生变化,记得进行-1操作 } if (j == tagsArr.length -i) { //当不断比较到达了数组的尾部时 temp.push(tagsArr[i]); tagsArr.splice(i,1); //到底了,压入该比较项进temp,并在tagsArr中删除该标签 i--; tag.push(temp); temp = []; //temp的值交给tag后,置空,进入下一个循环,本次循环信息在tag中 } } } return tag; } console.log(countTag()); </script>
第二道题是关于template.js模板引擎的问题的,要求是根据要求编出一个template引擎:
比如这样子,
var tpl = document.getElementById('tpl').innerHTML;
template(tpl, {list: [{name: "yan"},{name:"haijing"}]}); //json数组格式
输出格式:
<ul> <li>yan</li> <li>haijing</li></ul
那么根据题目中的意思,template引擎大概如下所示:
<script id="tpl" type="text/html"><ul> <%for(var i = 0; i < list.length; i++) {%> <li><%:=list[i].name%></li> <%}%></ul></script>
这里可以用一个type=”text/html”的script标签存放模板,或者放到字符串中
阅读全文
0 0
- 记cvte前端笔试
- CVTE前端开发在线笔试-2017.9.14
- CVTE笔试
- 记:CVTE校招软件类笔试
- CVTE笔试题
- CVTE笔试题
- CVTE笔试题
- CVTE笔试相关
- cvte笔试总结
- CVTE水果笔试题
- CVTE笔试编程笔记
- CVTE线上笔试总结
- cvte-c++-笔试1
- cvte-c++-笔试2
- CVTE笔试题
- cvte笔试有感
- cvte笔试题
- 链家、CVTE笔试题
- 数据库优化:表的优化
- Java如何跳出多重循环
- 定制ListView的界面(参考第一行代码Android)
- 你会使用google吗
- a+b问题 题解 c++
- 记cvte前端笔试
- CMake + VTK
- 头文件<climits>常用数值
- Nginx配置upstream实现负载均衡
- mysql 联合索引
- 软件测试必须会的业务测试
- C++实现单例模式
- iOS 按钮、Cell暴力点击触发多次响应的问题研究
- iOS远程真机之ios-minicap安装使用完全指南