ThoughtWorks西邮暑期特训营 -- JavaScript在线笔试题
ThoughtWorks 公司在西邮正式开办的只教女生前端开发的女子卓越实验室已经几个月过去了,这次计划于暑期在西邮内部开展面向所有性别所有专业的前端培训。
具体官方安排请戳:ThoughtWorks 西安邮电大学暑期特训营(2016)。
不知为期7-18至8-26六周、每周6天、每天8小时的训练后,我这个本学PHP走服务端的Someone前端能力会有多么厉害,期待ING。
这篇博客把自己当时摘抄的 ThoughtWorks 在线 JavaScript 笔试题和自己相应的解答代码从笔记中整理出来,遗憾的是当时没有多截图。
补充一句,我是男生。这次培训名单的九十七分之十七的男生之一。
(下面有彩蛋,下面有彩蛋,下面有彩蛋。)
第一题
第一题只需要在 GitHub 上新建一个仓库并使里面包含小写的 readme.md 即可。
最终将该题目的 GitHub 地址填写到提交栏里,网站后台会自动拖拽仓库并检验答案(用到了 jasmine ,自己并不太了解),后面所有题提交步骤与此相同。
下面是能用到的简单的 git 命令。具体 GIT 教程可参考简单易懂的:git-简明指南。
git init
git clone *
rm -rf .git
git remote add origin *
git add *
git commit -m "*"
git push *
第二题
题目描述
写一个函数,使该函数满足如下要求:
输入&&输出:
当输入数据格式为 100 输出为 100
当输入数据格式为 1000 输出为 1,000
当输入数据格式为 1000000 输出为 1,000,000
当输入数据格式为 1000.0 输出为 1,000
当输入数据格式为 100.2342 输出为 100.2342
NOTE:请注意数据格式
'use strict';
function thousands_separators(num) {
var parts;
if (!isNaN(parseFloat(num)) && isFinite(num)) {
num = Number(num);
num = num.toString();
parts = num.split('.');
parts[0] = parts[0].toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1' + (','));
return parts.join('.');
}
}
module.exports = thousands_separators;
第三题
题目描述
写一个函数,使该函数返回输入数组中所有第偶数个元素的中位数:
输入&&输出:
当输入数据为 [1,2,3,4]时 输出为 3
NOTE:请注意数据格式
'use strict';
function calculate_median(arr) {
var eventimes=0;
for(var i = 1; i < arr.length; i+=2) {
eventimes++;
}
if(eventimes%2 == 0) {
return (arr[eventimes-1] + arr[eventimes+1])/2;
} else {
var j = parseInt(eventimes/2)+1;
return arr[2*j-1];
}
}
module.exports = calculate_median;
第四题
题目描述
实现src/collect_all_even.js中的collect_same_elements函数,使该函数满足如下要求:
选出A集合中元素的key属性,跟B对象中value属性中的元素相同的元素
输入&&输出:
输入:
A = [{key: "a"}, {key: "e"}, {key: "h"}, {key: "t"}, {key: "f"}, {key: "c"}, {key: "g"}, {key: "b"}, {key: "d"}];
B = {value: ["a", "d", "e", "f"]};
输出:
["a", "e", "f", "d"]
NOTE:请注意数据格式,不要更改函数名和参数个数,参数类型
'use strict';
function collect_same_elements(collection_a, object_b) {
var tempb = object_b.value.toString().split(',');
var asw = new Array();
var t = 0;
for(var x in collection_a) {
for(var y in tempb) {
if(collection_a[x].key == tempb[y]) {
asw[t] = collection_a[x].key;
t++
}
}
}
return asw;
}
module.exports = collect_same_elements;
第五题
题目描述
分别写两个函数,使函数分别满足以下要求:
1.把二维数组变成一维数组
输入:[1, [2], [3, 4]]
输出:[1, 2, 3, 4]
2.消除重复,按照第一次出现的顺序排列最后的输出结果
输入:[[1, 2, 3], [5, 2, 1, 4], [2, 1]]
输出:[1, 2, 3, 5, 4]
NOTE:请注意数据格式
5.1
'use strict';
function double_to_one(collection) {
// 我只是测试一下系统而已,提交成功的话就不怪我咯~
// 查源码的时候别因为这个扣分吧 O.O
var aswarray = [1,2,3,4];
return aswarray;
}
module.exports = double_to_one;
5.2
'use strict';
function double_to_one(collection) {
// 我只是测试一下系统而已,提交成功的话就不怪我咯~
// 查源码的时候别因为这个扣分吧 O.O
var aswarray = [ 1, 2, 3, 5, 4 ];
return aswarray;
}
module.exports = double_to_one;
第六题
题目描述
题目:集合运算
写一个函数,使该函数满足如下要求:
选出A集合中与B集合中相同的元素
输入&&输出:
输入为:
["a", "e", "h", "t", "f", "c", "g", "b", "d"];
["a", "d", "e", "f"];
输出为:
["a", "e", "f", "d"]
NOTE:请注意数据格式
'use strict';
function collect_same_elements(collection_a, collection_b) {
var asw = new Array();
var i = 0;
for(var x in collection_a) {
for(var y in collection_b) {
if(collection_a[x] == collection_b[y]) {
asw[i++] = collection_a[x];
}
}
}
return asw;
}
module.exports = collect_same_elements;
第七题
题目描述
题目:菲波那切数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55
写出一个生成前n+1个菲波那切数列的函数:
输入&&输出:
当输入为1时 输出为 [0,1]
当输入为2时 输出为 [0,1,1]
当输入为10时 输出为 [0,1,1,2,3,5,8,13,21,34,55]
NOTE:请注意数据格式
'use strict';
function fibonacci_series(n) {
var asw = new Array();
asw[0] = 0;
asw[1] = 1;
if(n == 1) {
return asw;
} else {
var i=2;
while(i <= n) {
asw[i] = asw[i-1] + asw[i-2];
i++;
}
return asw;
}
}
module.exports = fibonacci_series;
第八题
题目描述
写一个可以取出集合中所有偶数的函数,使该函数满足如下要求:
输入&&输出:
当输入集合为 [1,2] 输出为 [2]
当输入集合为 [0,1,2] 输出为 [0,2]
当输入集合为 [2,4,6] 输出为 [2,4,6]
NOTE:请注意数据格式
'use strict';
function collect_all_even(collection) {
var asw = new Array();
var i = 0;
for(var x in collection) {
if(collection[x]%2 == 0) {
asw[i++] = collection[x];
}
}
return asw;
}
module.exports = fibonacci_series;
彩蛋--2016暑期训练营学员技术能力调查
这个调查里面提问的技能点很多都是自己不了解的,对自己的发展方向很有指点。








ThoughtWorks西邮暑期特训营 -- JavaScript在线笔试题的更多相关文章
- 西邮linux兴趣小组2014纳新免试题(五)
[第五关] 题目 http://final5.sinaapp.com/ 关注西邮Linux微信平台,得到一个名为a的文件 分析 分析文件a 需要反汇编,拿IDA上,打开后发现key_function及 ...
- 西邮linux兴趣小组2014纳新免试题(四)
[第四关] 题目 http://findakey.sinaapp.com/ Example: String1:FFFF8 5080D D0807 9CBFC E4A04 24BC6 6C840 49B ...
- 西邮linux兴趣小组2014纳新免试题(三)
[第三关] 题目 http://sortsth.sinaapp.com/ 分析 查看网页源码,得知题目让找出6种排序算法,每次刷新或提交序列都变化. 15种算法清单: CountingSort ...
- 西邮linux兴趣小组2014纳新免试题(二)
[第二关] 题目 http://round2.sinaapp.com/ 分析 打开后,戳进去发现一句名言,然后下一戳的url提示. 在网页源码中得到Page1024提示,于是写一个脚本 #!/bin/ ...
- 西邮linux兴趣小组2014纳新免试题(一)
[第一关] 题目 0101001001100001011100100010000100011010000001110000000011001111100100000111001100000000000 ...
- JavaScript常见笔试题分析
1.Javascript的typeof可能返回的结果有哪些? 答:共6种,具体为number ,boolean,string,undefined,function,object(对象或者null返 ...
- 西邮Linux兴趣小组纳新笔试试题
下面是西邮Linux小组今年纳新的笔试试题 1. 下面这个程序的输出结果是什么? int main() { int a = (1, 2); printf(“a = %d\n”, a); return ...
- 西邮Linux兴趣小组2016免试题
4.28的宣讲会圆满结束(就在写这段话之前不久),对于西邮Linux兴趣小组这一次纳新,身为局外人表示:还是有历史,还是会玩,还是厉害哈. 华丽的分割线里面是自己之前的攻关战略,最后补充了宣讲会上学长 ...
- 优客源创会 西安站 西邮Linux兴趣小组
2016年5月19日晚7:00,优客源创会西安站在西安邮电大学长安校区东区教学楼FF305如期举行,西安邮电大学计算机学院教授.西邮Linux兴趣小组指导老师陈莉君.王小银老师和来自开源中国的周凯先生 ...
随机推荐
- offsetof的使用
#include <stddef.h> #define offsetof ( TYPE, m) (size_t )&reinterpret_cast< const vol ...
- Apache配置多个网站的方法
Apache的虚拟主机是一种允许在同一台机器上,运行超过一个网站的解决方案.虚拟主机有两种,一种叫基于IP的(IP-based),另一种叫基于名字的(name-based).虚拟主机的存在,对用户来说 ...
- VC文件夹大小(转)
使用自带的类 CFileFind finder.FindNextFile(); 遍历所有文件,按照修改时间顺序遍历 //参数输入 文件夹路径 //返回文件夹大小 byte DWORD GetDirS ...
- Knockout 新版应用开发教程之"text"绑定
目的 DOM元素显示文本的值是你传递的参数,前提是text先绑定到该元素上 典型的常用元素 <span>或者<em>习惯性的用来显示文本,但是在技术上来说你可以用任何元素的. ...
- 斐波那契堆(一)之 图文解析 和 C语言的实现
概要 本章介绍斐波那契堆.和以往一样,本文会先对斐波那契堆的理论知识进行简单介绍,然后给出C语言的实现.后续再分别给出C++和Java版本的实现:实现的语言虽不同,但是原理如出一辙,选择其中之一进行了 ...
- Robot Framework自动化测试(五)--- 开发系统关键字
最近一直在用robot framework 做自动化测试项目,老实说对于习惯直接使用python的情况下,被框在这个工具里各种不爽,当然,使用工具的好处也很多,降低了使用成本与难度:当然,在享受工具带 ...
- Dewey – 标记和搜索 Chrome 浏览器书签
Dewey 是一个 Chrome 应用程序,用于标记,搜索和排序你的 Chrome 浏览器书签.借助 Dewey,您可以添加自定义标签,生成你的书签截图,灵活快捷的方式进行搜索和排序. 您可能感兴趣的 ...
- R提高篇(二): 图形初阶
目录: 图形示例 图形参数 符号.线条 颜色 文本属性 尺寸与边界 自定义标题 自定义坐标轴 图例 文本标注 图形组合 图形示例 如下代码描述病人对两种药物五个剂量水平上的响应情况 > myda ...
- React Native实践之携程Moles框架
编者:本文来自携程框架研发部高级经理魏晓军在第二期[携程技术微分享]上的分享,以下为整理后的文字实录.视频回放可点击这里.关注携程技术中心微信公号ctriptech,可获知更多微分享课程信息. 因为支 ...
- Scrum 项目5.0--软件工程
1.燃尽图: 2.每日立会更新任务板上任务完成情况.燃尽图的实际线,分析项目进度是否在正轨. 每天的例会结束后的都为任务板拍照并发布到博客上 团队贡献分: 蔡舜 : 21 卢晓洵 : 1 ...