- 博客(60)
- 收藏
- 关注
原创 【js】统计数位上数字不重复的整数的个数
给出一个正整数n,统计0到10^n内,各个数位上的数字均不同的整数个数。(例如:123,个十百位数字都不一样,则计数;121则不计数)输入:2输出90function number(n){ var num=Math.pow(10,n) var cnt=0 for(var i=1;i<num;i++){ var s=''+i var arr=s.sp...
2019-09-24 23:39:58
642
原创 【js设计模式】SOLID五大设计原则
一、用Promise来说明单一职责原则、开放封闭原则。function loadImg(src){ var promise = new Promise(function(resolve,reject){ var img = document.createElement('img') img.onload = function(){ ...
2019-09-23 23:41:24
521
原创 【js】找出json中所有节点的父节点
示例:输入:var nodes = { node: 6, left: { node: 5, left: { node: 4 }, right: { node: 3 } }, right: { node: 2, right: { node: 1 } ...
2019-09-23 20:58:19
1810
原创 【js】复数计算
输入:1+2i2+i输出:5ifunction complex(a,b){ var ia=a.indexOf('+') var ib=b.indexOf('+') var a1=parseInt(a.substring(0,ia)) var a2=parseInt(a.substring(ia+1,a.length-1)) var b1=parseInt(b...
2019-09-21 18:02:26
1414
原创 【js】计算某个日期是该年的第几天
示例:输入:'2019-09-21'输出:264function getDays(s){ var arr=s.split('-') var d1=new Date(arr[0],0,0).getTime() var d2=new Date(arr[0],arr[1]-1,arr[2]).getTime() var d=Math.floor((d2-d1)/(1...
2019-09-21 02:07:21
2620
原创 【js】驼峰命名法和短横线命名法的转换
一、将骆驼命名规则的字符串转换成使用短横线命名法的字符串输入userName输出user-name方法1:采用数组的方法function getKebabCase1(str){ var arr=str.split('') str=arr.map(function(item){ if(item.toUpperCase()===i...
2019-09-18 16:14:34
3755
原创 前端笔试面试题-判断输出结果
作用域var a=b=10;(function f(){ var a=b=11;})()console.log(a); //10console.log(b); //11var a=1function fn(){ var a=2 b=3}fn()console.log(a) //1console.log(b) //3var a=1let...
2019-09-09 22:28:17
669
原创 【js】数组的全排列
function permute(arr){ var rst=[],cur=[] function fn(arr){ var ch for(var i=0;i<arr.length;i++){ ch=arr.splice(i,1)[0] cur.push(ch) if(arr.length==0){ rst.push(cur.slice()) }...
2019-09-09 22:26:00
789
1
原创 【js】按json的某一个字段排序
对data的time字段,按照由小到大排序;如果为空,则按原来的顺序放在后面。var data=[{name:'xixi',time:'2019-09-03'},{name:'haha',time:'2019-09-02'},{name:'hehe',time:'2019-09-01'},{name:'hihi',time:'2019-09-04'},{name:'mumu...
2019-09-09 21:50:37
862
原创 【js】比较两个APP的版本号
输入:5.2.0和5.1输出:按版本由小到大输出5.1,5.2.0var v1='5.2.0'var v2='5.1'var arr1=v1.split('.').map(function(item){ return parseInt(item)});var arr2=v2.split('.').map(function(item){ return pa...
2019-09-09 18:29:31
5851
原创 【js】字符串的所有字串
输入一个字符串,输出字符串的所有字串。示例:输入'abc'输出'a', 'ab', 'abc', 'b', 'bc', 'c'let s='abc'let a=[]for(let i=0;i<s.length;i++){ for(let j=i+1;j<=s.length;j++){ a.push(s.substring(i,j))...
2019-08-31 19:50:57
487
原创 【js】判断是否符合 USD 格式
给定字符串 str,检查其是否符合美元书写格式1、以 $ 开始2、整数部分,从个位起,满 3 个数字用 , 分隔3、如果为小数,则小数部分长度为 24、正确的格式如:$1,023,032.03 或者 $2.03,错误的格式如:$3,432,12.12 或者 $34,344.3示例1输入'$20,933,209.93'输出truefunction i...
2019-07-29 11:27:30
730
原创 【js】判断是否符合指定格式
给定字符串 str,检查其是否符合如下格式1、XXX-XXX-XXXX2、其中 X 为 Number 类型示例1输入'800-555-1212'输出true开头^和结尾$必须加上来限定字符串;3个数可表示为\d{3},4个数则为\d{4},{n}表示前面内容出现的次数。正则表达式可写作/^\d{3}-\d{3}-\d{4}$/,有相同部分\d{3}-,因...
2019-07-29 11:24:34
2820
原创 【js】获取指定字符串
题目描述给定字符串 str,检查其是否包含连续3个数字1、如果包含,返回最新出现的 3 个数字的字符串2、如果不包含,返回 false示例1输入'9876543'输出987function captureThreeNumbers(str) { var num=str.match(/\d{3}/); if(num){ ...
2019-07-29 11:21:05
893
原创 【js】判断是否以元音字母结尾
字符串 str,检查其是否以元音字母结尾1、元音字母包括 a,e,i,o,u,以及对应的大写2、包含返回 true,否则返回 false示例1输入'gorilla'输出true1.正则确定元音集合[a,e,i,o,u];以元音结尾,加上$;通配大小写,加上i;最后用test方法去检测字符串str。function endsWithVowel(str...
2019-07-29 11:16:32
1791
原创 【js】检查重复字符串
题目描述给定字符串 str,检查其是否包含连续重复的字母(a-zA-Z),包含返回 true,否则返回 false示例1输入'rattler'输出true在正则表达式中,利用()进行分组,使用斜杠加数字表示引用,\1就是引用第一个分组,\2就是引用第二个分组。将[a-zA-Z]做为一个分组,然后引用,就可以判断是否有连续重复的字母。function c...
2019-07-29 11:10:59
1510
原创 【js】判断是否包含数字
题目描述给定字符串 str,检查其是否包含数字,包含返回 true,否则返回 false示例1输入'abc123'输出true1.正则,testfunction containsNumber(str) { var reg=/\d/; return reg.test(str);}2.正则,matchfunction contain...
2019-07-28 23:13:59
8863
原创 【js】属性遍历
题目描述找出对象 obj 不在原型链上的属性(注意这题测试例子的冒号后面也有一个空格~)1、返回数组,格式为 key: value2、结果数组不要求顺序示例1输入var C = function() {this.foo = 'bar'; this.baz = 'bim';};C.prototype.bop = 'bip';iterate(new C());输...
2019-07-28 23:10:12
125
原创 【js】批量改变对象的属性
题目描述给定一个构造函数 constructor,请完成 alterObjects 方法,将 constructor 的所有实例的 greeting 属性指向给定的 greeting 变量。示例1输入var C = function(name) {this.name = name; return this;};var obj1 = new C('Rebecca');alt...
2019-07-28 23:04:23
3131
原创 【js】二进制转换-toString
题目描述将给定数字转换成二进制字符串。如果字符串长度不足 8 位,则在前面补 0 到满8位。示例1输入65输出010000011.最简单的方式,toString+slicefunction convertToBinary(num) { return ('00000000' + num.toString(2)).slice(-8);}2.先转换,再...
2019-07-28 22:50:43
2474
原创 【js】二进制转换-parseInt
题目描述给定二进制字符串,将其换算成对应的十进制数字示例1输入'11000000'输出1921.parseIntparseInt方法的可选参数是操作数的进制说明,不是目标的进制。数字转字符用toString(),字符转数字用parseInt()或者parseFloat().function base10(str) { /* ...
2019-07-28 22:45:40
893
原创 【js】二进制转换-移位运算符
题目描述获取数字 num 二进制形式第 bit 位的值。注意:1、bit 从 1 开始2、返回 0 或 13、举例:2 的二进制为 10,第 1 位为 0,第 2 位为 1示例1输入128, 8输出11.移位运算符>>和&function valueAtBit(num, bit) { return (num >...
2019-07-25 16:51:27
849
原创 【js】模块
题目描述完成函数 createModule,调用之后满足如下要求:1、返回一个对象2、对象的 greeting 属性值等于 str1, name 属性值等于 str23、对象存在一个 sayIt 方法,该方法返回的字符串为 greeting属性值 + ', ' + name属性值声明对象有两种常见的方式:var obj = {};和var obj = new Object();...
2019-07-25 16:40:13
205
原创 【js】且运算、或运算
一、题目描述返回参数 a 和 b 的逻辑且运算结果示例1输入false, true输出false且运算符"&&"的运算规则是:如果第一个运算子的布尔值为true,则返回第二个运算子的值(注意是值,不是布尔值);如果第一个运算子的布尔值为false,则直接返回第一个运算子的值,且不再对第二个运算子求值。function and(a, ...
2019-07-25 16:21:43
3800
原创 【js】函数柯里化
题目描述已知 fn 为一个预定义函数,实现函数 curryIt,调用之后满足如下条件:1、返回一个函数 a,a 的 length 属性值为 1(即显式声明 a 接收一个参数)2、调用 a 之后,返回一个函数 b, b 的 length 属性值为 13、调用 b 之后,返回一个函数 c, c 的 length 属性值为 14、调用 c 之后,返回的结果与调用 fn 的返回值一致...
2019-07-25 16:12:57
173
原创 【js】使用 apply 调用函数
一、题目描述实现函数 callIt,调用之后满足如下条件1、返回的结果为调用 fn 之后的结果2、fn 的调用参数为 callIt 的第一个参数之后的全部参数示例1输入无输出无arguments并非真正的数组,因此要获得callIt的第一个参数之后的所有参数,不能直接使用slice方法截取,需要先将arguments转换为真正的数组才行。有两种常见的方法...
2019-07-25 15:41:32
868
原创 【js】使用 arguments
题目描述函数 useArguments 可以接收 1 个及以上的参数。请实现函数 useArguments,返回所有调用参数相加后的结果。本题的测试参数全部为 Number 类型,不需考虑参数转换。示例1输入1, 2, 3, 4输出10arguments能获得函数对象传入的参数组,类似与一个数组,能够通过length获取参数个数,能通过下标获取该位置的参数,但是...
2019-07-25 15:30:07
265
原创 【js】二次封装函数
题目描述已知函数 fn 执行需要 3 个参数。请实现函数 partial,调用之后满足如下条件:1、返回一个函数 result,该函数接受一个参数2、执行 result(str3) ,返回的结果与 fn(str1, str2, str3) 一致示例1输入var sayIt = function(greeting, name, punctuation) { return g...
2019-07-25 15:21:15
371
原创 使用闭包
题目描述实现函数 makeClosures,调用之后满足如下条件:1、返回一个函数数组 result,长度与 arr 相同2、运行 result 中第 i 个函数,即 result[i](),结果与 fn(arr[i]) 相同示例1输入[1, 2, 3], function (x) {return x * x;}输出41.闭包functio...
2019-07-25 15:11:11
104
原创 函数传参
题目描述将数组 arr 中的元素作为调用函数 fn 的参数示例1输入function (greeting, name, punctuation) {return greeting + ', ' + name + (punctuation || '!');}, ['Hello', 'Ellie', '!']输出Hello, Ellie!1.applyfunc...
2019-07-25 14:57:34
159
原创 流量控制(js)
题目描述实现 fizzBuzz 函数,参数 num 与返回值的关系如下:1、如果 num 能同时被 3 和 5 整除,返回字符串 fizzbuzz2、如果 num 能被 3 整除,返回字符串 fizz3、如果 num 能被 5 整除,返回字符串 buzz4、如果参数为空或者不是 Number 类型,返回 false5、其余情况,返回参数 num示例1输入15...
2019-07-25 14:48:44
465
原创 计时器
题目描述实现一个打点计时器,要求1、从 start 到 end(包含 start 和 end),每隔 100 毫秒 console.log 一个数字,每次数字增幅为 12、返回的对象中需要包含一个 cancel 方法,用于停止定时操作3、第一个数需要立即输出1.setIntervalfunction count(start, end) { console...
2019-07-15 22:24:46
388
原创 正确的使用 parseInt
题目描述修改 js 代码中 parseInt 的调用方式,使之通过全部测试用例示例1输入'12'输出12示例2输入'12px'输出12示例3输入'0x12'输出0function parse2Int(num) { return parseInt(num,10);}parseInt(strin...
2019-07-15 20:40:16
505
原创 正确的函数定义
题目描述请修复给定的 js 代码中,函数定义存在的问题示例1输入true输出a给定的js:function functions(flag) { if (flag) { function getValue() { return 'a'; } } else { function getValue() { return 'b'...
2019-07-15 20:37:49
670
原创 查找元素位置
题目描述在数组 arr 中,查找值与 item 相等的元素出现的所有位置示例1输入'abcdefabc'输出[0, 6]1.filterfunction findAllOccurrences(arr, target) { var a=[]; arr.filter(function(item,index,arr){ if(it...
2019-07-15 20:32:41
591
原创 求二次方
题目描述为数组 arr 中的每个元素求二次方。不要直接修改数组 arr,结果返回新的数组示例1输入[1, 2, 3, 4]输出[1, 4, 9, 16]1.map方法function square(arr) { return arr.map(function(item, index, array) { //也可以写成function(i...
2019-07-15 20:27:18
212
原创 查找重复元素
题目描述找出数组 arr 中重复出现过的元素示例1输入[1, 2, 4, 4, 3, 3, 1, 5, 3]输出[1, 3, 4]重复的元素item:第一个item和最后一个item索引不同function duplicates(arr) { var a = []; for (var i = 0; i < arr.length; i+...
2019-07-10 18:13:15
482
原创 计数
题目描述统计数组 arr 中值等于 item 的元素出现的次数示例1输入[1, 2, 4, 4, 3, 4, 3], 4输出31.filterfunction count(arr, item) { var a=[]; a=arr.filter(function(v,i,a){ return a[i]==item; ...
2019-07-10 18:03:02
162
原创 添加元素
题目描述在数组 arr 的 index 处添加元素 item。不要直接修改数组 arr,结果返回新的数组示例1输入[1, 2, 3, 4], 'z', 2输出[1, 2, 'z', 3, 4]1.splicefunction insert(arr, item, index) { var newarr=arr.slice(0); newarr...
2019-07-10 17:56:07
136
原创 数组合并
题目描述合并数组 arr1 和数组 arr2。不要直接修改数组 arr,结果返回新的数组示例1输入[1, 2, 3, 4], ['a', 'b', 'c', 1]输出[1, 2, 3, 4, 'a', 'b', 'c', 1]1.concatfunction concat(arr1, arr2) { return arr1.concat(arr2)...
2019-07-10 17:50:53
7984
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人