![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
牛客题库在线编程前端篇
# 牛客网-题库-在线编程-前端篇
Doe
这个作者很懒,什么都没留下…
展开
-
牛客前端篇———FED60、判断是否符合 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'输出true思路^\$:以$符号开头\d{1,3}:至少1位至多3位数字(\,\d{3})*:0个或多个,+3位数字...原创 2021-04-26 16:34:50 · 128 阅读 · 0 评论 -
牛客前端篇———FED59、判断是否符合指定格式
题目描述给定字符串 str,检查其是否符合如下格式1、XXX-XXX-XXXX2、其中 X 为 Number 类型示例1输入'800-555-1212'输出true代码function matchesPattern(str) { return (/^\d{3}\-\d{3}\-\d{4}$/).test(str);}运行环境:JavaScript (V8 6.0.0)运行时间:1211ms占用内存:107564KB...原创 2021-04-26 16:34:44 · 173 阅读 · 0 评论 -
牛客前端篇———FED58、获取指定字符串
题目描述给定字符串 str,检查其是否包含连续3个数字1、如果包含,返回最先出现的 3 个数字的字符串2、如果不包含,返回 false示例1输入'9876543'输出987代码题目描述有问题,实际考察的是字符串中是否含有连续的三个任意数字,而不是三个连续的数字。依题,若存在连续的三个任意数字,则返回最早出现的三个数字,若不存在,则返回false。因此需要用到match方法,match()返回的是正则表达式匹配的字符串数组,连续的三个任意数字用正则表达式表示为/.原创 2021-04-26 16:34:35 · 149 阅读 · 0 评论 -
牛客前端篇———FED57、判断是否以元音字母结尾
题目描述给定字符串 str,检查其是否以元音字母结尾1、元音字母包括 a,e,i,o,u,以及对应的大写2、包含返回 true,否则返回 false示例1输入'gorilla'输出trueJavaScript indexOf() 方法代码function endsWithVowel(str) { return str && ("aeiouAEIOU".indexOf(str[str.length-1]) > -1);}原创 2021-04-26 16:34:27 · 114 阅读 · 0 评论 -
牛客前端篇———FED56、检查重复字符串
题目描述给定字符串 str,检查其是否包含连续重复的字母(a-zA-Z),包含返回 true,否则返回 false示例1输入'rattler'输出true原创 2021-04-26 16:34:10 · 398 阅读 · 0 评论 -
牛客前端篇———FED55、判断是否包含数字
题目描述给定字符串 str,检查其是否包含数字,包含返回 true,否则返回 false示例1输入'abc123'输出true代码判断字符串中是否含有数字,可以用正则表达式。/\d/可以匹配字符串中的数字字符,用test方法可以检测。function containsNumber(str) { var b = /\d/; return b.test(str); }运行环境:JavaScript (V8 6.0.0)运行时间:96原创 2021-04-24 13:33:19 · 311 阅读 · 0 评论 -
牛客前端篇———FED54、属性遍历
题目描述找出对象 obj 不在原型链上的属性(注意这题测试例子的冒号后面也有一个空格~)1、返回数组,格式为 key: value2、结果数组不要求顺序示例1输入var C = function() {this.foo = 'bar'; this.baz = 'bim';}; C.prototype.bop = 'bip'; iterate(new C());输出["foo: bar", "baz: bim"]JavaScript Array map() 方法原创 2021-04-24 13:33:11 · 223 阅读 · 0 评论 -
牛客前端篇———FED53、批量改变对象的属性
题目描述给定一个构造函数 constructor,请完成 alterObjects 方法,将 constructor 的所有实例的 greeting 属性指向给定的 greeting 变量。示例1输入var C = function(name) {this.name = name; return this;}; var obj1 = new C('Rebecca'); alterObjects(C, 'What\'s up'); obj1.greeting;输出What's原创 2021-04-23 11:16:39 · 82 阅读 · 0 评论 -
牛客前端篇——— FED52、改变上下文
题目描述将函数 fn 的执行上下文改为 obj,返回 fn 执行后的值示例1输入alterContext(function() {return this.greeting + ', ' + this.name + '!'; }, {name: 'Rebecca', greeting: 'Yo' })输出Yo, Rebecca!代码主要有三种答案。function alterContext(fn, obj) { return fn.bind(obj)();//.原创 2021-04-23 11:05:22 · 82 阅读 · 0 评论 -
牛客前端篇———FED51、乘法
题目描述求 a 和 b 相乘的值,a 和 b 可能是小数,需要注意结果的精度问题示例1输入3, 0.0001输出0.0003JavaScript toFixed() 方法代码计算两小数的小数点位数,然后相加得到保留的小数点位数,用tofixed函数即可function multiply(a, b) { var aDec = a.toString().split('.')[1] || ''; var bDec = b.toString(原创 2021-04-23 11:03:01 · 74 阅读 · 0 评论 -
牛客前端篇———FED49、二进制转换
题目描述给定二进制字符串,将其换算成对应的十进制数字示例1输入'11000000'输出192转二进制数字:JavaScript parseInt() 函数转二进制字符串:JavaScripttoString()方法代码function base10(str) { /** 其它进制转十进制 parseInt(str,2) parseInt(str,8) parseInt(st..原创 2021-04-23 10:47:01 · 158 阅读 · 0 评论 -
牛客前端篇——— FED48、二进制转换
题目描述获取数字 num 二进制形式第 bit 位的值。注意:1、bit 从 1 开始2、返回 0 或 13、举例:2 的二进制为 10,第 1 位为 0,第 2 位为 1示例1输入128, 8输出1转2、8、16进制:JavaScripttoString()方法JavaScript reverse() 方法.split("").split("")可以把字符串转换成数组代码function valueAtBit(num, bit..原创 2021-04-23 10:40:11 · 202 阅读 · 0 评论 -
牛客前端篇———FED47、模块
题目描述完成函数 createModule,调用之后满足如下要求:1、返回一个对象2、对象的 greeting 属性值等于 str1, name 属性值等于 str23、对象存在一个 sayIt 方法,该方法返回的字符串为 greeting属性值 + ', ' + name属性值思路声明对象有两种常见的方式:var obj = {};和var obj = new Object();。前面一种可以直接在括号中以key:value的方式定义属性,后一种采用点运算符给对象添加属性。原创 2021-04-23 10:14:51 · 81 阅读 · 0 评论 -
牛客前端篇———FED46、且运算
题目描述返回参数 a 和 b 的逻辑且运算结果示例1输入false, true输出false代码function and(a, b) { return a && b;}运行环境:JavaScript运行时间:1058ms占用内存:77832KB原创 2021-04-23 09:57:42 · 78 阅读 · 0 评论 -
牛客前端篇———FED45、或运算
题目描述返回参数 a 和 b 的逻辑或运算结果示例1输入false, true输出true代码function or(a, b) { return a||b;}运行环境:JavaScript运行时间:971ms占用内存:77864KB原创 2021-04-23 09:55:12 · 963 阅读 · 0 评论 -
牛客前端篇———FED44、柯里化
题目描述已知 fn 为一个预定义函数,实现函数 curryIt,调用之后满足如下条件:1、返回一个函数 a,a 的 length 属性值为 1(即显式声明 a 接收一个参数)2、调用 a 之后,返回一个函数 b, b 的 length 属性值为 13、调用 b 之后,返回一个函数 c, c 的 length 属性值为 14、调用 c 之后,返回的结果与调用 fn 的返回值一致5、fn 的参数依次为函数 a, b, c 的调用参数示例1输入var fn = function (a原创 2021-04-23 09:51:42 · 180 阅读 · 0 评论 -
牛客前端篇——— FED43、二次封装函数
题目描述实现函数 partialUsingArguments,调用之后满足如下条件:1、返回一个函数 result2、调用 result 之后,返回的结果与调用函数 fn 的结果一致3、fn 的调用参数为 partialUsingArguments 的第一个参数之后的全部参数以及 result 的调用参数示例1输入无输出无代码function partialUsingArguments(fn) { var a=Array.prototype.slice原创 2021-04-22 21:17:52 · 83 阅读 · 0 评论 -
牛客前端篇———FED42、使用 apply 调用函数
题目描述实现函数 callIt,调用之后满足如下条件1、返回的结果为调用 fn 之后的结果2、fn 的调用参数为 callIt 的第一个参数之后的全部参数示例1输入无输出无代码1function callIt(fn) { var args = new Array(); for(var i = 1; i < arguments.length; i++){ args.push(arguments[i]); } r原创 2021-04-22 21:00:58 · 131 阅读 · 0 评论 -
牛客前端篇——— FED41、使用 arguments
题目描述函数 useArguments 可以接收 1 个及以上的参数。请实现函数 useArguments,返回所有调用参数相加后的结果。本题的测试参数全部为 Number 类型,不需考虑参数转换。示例1输入1, 2, 3, 4输出10代码1(解构赋值)function useArguments() { let a=[...arguments]; let ans=0; for(let i=0;i<a.length;i++) {原创 2021-04-22 20:40:55 · 198 阅读 · 0 评论 -
牛客前端篇———FED40、二次封装函数
题目描述已知函数 fn 执行需要 3 个参数。请实现函数 partial,调用之后满足如下条件:1、返回一个函数 result,该函数接受一个参数2、执行 result(str3) ,返回的结果与 fn(str1, str2, str3) 一致示例1输入var sayIt = function(greeting, name, punctuation) { return greeting + ', ' + name + (punctuation || '!'); }; par原创 2021-04-22 08:38:27 · 97 阅读 · 0 评论 -
牛客前端篇———FED39、使用闭包
题目描述实现函数 makeClosures,调用之后满足如下条件:1、返回一个函数数组 result,长度与 arr 相同2、运行 result 中第 i 个函数,即 result[i](),结果与 fn(arr[i]) 相同示例1输入[1, 2, 3], function (x) { return x * x; }输出4...原创 2021-04-22 08:35:25 · 91 阅读 · 0 评论 -
牛客前端篇———FED38、返回函数
题目描述实现函数 functionFunction,调用之后满足如下条件:1、返回值为一个函数 f2、调用返回的函数 f,返回值为按照调用顺序的参数拼接,拼接字符为英文逗号加一个空格,即 ', '3、所有函数的参数数量为 1,且均为 String 类型示例1输入functionFunction('Hello')('world')输出Hello, world分析首先返回值是一个函数,所以定义一个函数变量fn由示例可以看出返回函数的参数为一个字符串(str2).原创 2021-04-22 08:35:17 · 101 阅读 · 0 评论 -
牛客前端篇———FED37、函数的上下文
题目描述将函数 fn 的执行上下文改为 obj 对象示例1输入function () {return this.greeting + ', ' + this.name + '!!!';}, {greeting: 'Hello', name: 'Rebecca'}输出Hello, Rebecca!!!思路在JavaScript中,函数是一种对象,其上下文是可以变化的,对应的,函数内的this也是可以变化的,函数可以作为一个对象的方法,也可以同时作为另一个对象的方法,可以原创 2021-04-22 08:35:04 · 94 阅读 · 0 评论 -
牛客前端篇———FED36、函数传参
题目描述将数组 arr 中的元素作为调用函数 fn 的参数示例1输入function (greeting, name, punctuation) {return greeting + ', ' + name + (punctuation || '!');}, ['Hello', 'Ellie', '!']输出Hello, Ellie!代码1function argsAsArray(fn, arr) { return fn(...arr);}运行环境:J原创 2021-04-21 10:25:46 · 110 阅读 · 0 评论 -
牛客前端篇———FED35、流程控制
题目描述实现 fizzBuzz 函数,参数 num 与返回值的关系如下:1、如果 num 能同时被 3 和 5 整除,返回字符串 fizzbuzz2、如果 num 能被 3 整除,返回字符串 fizz3、如果 num 能被 5 整除,返回字符串 buzz4、如果参数为空或者不是 Number 类型,返回 false5、其余情况,返回参数 num示例1输入15输出fizzbuzz代码1function fizzBuzz(num) { var r = ""原创 2021-04-21 10:14:27 · 103 阅读 · 0 评论 -
牛客前端篇———FED34、计时器
题目描述实现一个打点计时器,要求1、从 start 到 end(包含 start 和 end),每隔 100 毫秒 console.log 一个数字,每次数字增幅为 12、返回的对象中需要包含一个 cancel 方法,用于停止定时操作3、第一个数需要立即输出代码1function count(start, end) { //立即输出第一个值 console.log(start++); var timer = setInterval(function(){原创 2021-04-21 09:50:44 · 79 阅读 · 0 评论 -
牛客前端篇———FED33、完全等同
题目描述判断 val1 和 val2 是否完全等同思路一般使用双等来判断(==),如果还需要类型相同那么就用三等(===)。说一下这两个的区别:==equality等同,===identity恒等。==,两边值类型不同的时候,要先进行类型转换,再比较。==,不做类型转换,类型不同的一定不等。下面分别说明:先说===,这个比较简单。下面的规则用来判断两个值是否===相等:1、如果类型不同,就[不相等]2、如果两个都是数值,并且是同一个值,那么[相等]...原创 2021-04-21 09:28:26 · 155 阅读 · 0 评论 -
牛客前端篇———FED32、正确的使用 parseInt
题目描述修改 js 代码中 parseInt 的调用方式,使之通过全部测试用例示例1输入'12'输出12示例2输入'12px'输出12示例3输入'0x12'输出0代码1function parse2Int(num) { return parseFloat(num);}运行环境:JavaScript (V8 6.0.0)运行时间:1062ms占用内存:78064KBJavaScriptpars.原创 2021-04-21 09:06:28 · 191 阅读 · 0 评论 -
牛客前端篇———FED30、避免全局变量
题目描述给定的 js 代码中存在全局变量,请修复代码思路在Javascript语言中,声明变量使用的都是关键字var,如果不使用var而直接声明变量,则该变量为全局变量。代码function globals() { //只需要在声明myObject时加上var就行了 var myObject = { name : 'Jory' }; return myObject;}运行环境:JavaScript (V8 6.0.0)运行时间原创 2021-04-21 08:39:05 · 114 阅读 · 0 评论 -
牛客前端篇———FED31、正确的函数定义
题目描述请修复给定的 js 代码中,函数定义存在的问题function functions(flag) { if (flag) { function getValue() { return 'a'; } } else { function getValue() { return 'b'; } } return getValue();}示例1输入true输出a代码思路这道题是考函数声明与函数表达式的区.原创 2021-04-21 08:40:03 · 87 阅读 · 0 评论 -
牛客前端篇———FED29、查找元素位置
题目描述在数组 arr 中,查找值与 item 相等的元素出现的所有位置示例1输入['a','b','c','d','e','f','a','b','c'] 'a'输出[0, 6]代码function findAllOccurrences(arr, target) { var list = []; arr.forEach(function(value,index,array){ (value == target) ? list.pus原创 2021-04-20 20:35:12 · 91 阅读 · 0 评论 -
牛客前端篇———FED28、求二次方
题目描述为数组 arr 中的每个元素求二次方。不要直接修改数组 arr,结果返回新的数组示例1输入[1, 2, 3, 4]输出[1, 4, 9, 16]代码function square(arr) { return arr.map(function(item,index,array){ return item*item; })}运行环境:JavaScript (V8 6.0.0)运行时间:971ms占用内存:77772原创 2021-04-20 20:29:31 · 95 阅读 · 0 评论 -
牛客前端篇——— FED27、查找重复元素
题目描述找出数组 arr 中重复出现过的元素示例1输入[1, 2, 4, 4, 3, 3, 1, 5, 3]输出[1, 3, 4]代码function duplicates(arr) { let ans=[]; for(let i=0;i<arr.length;i++) { if(arr.indexOf(arr[i])!=i){ if(ans.indexOf(arr[i])==-1){原创 2021-04-20 20:15:28 · 133 阅读 · 0 评论 -
牛客前端篇———FED26、计数
题目描述统计数组 arr 中值等于 item 的元素出现的次数示例1输入[1, 2, 4, 4, 3, 4, 3], 4输出3代码function count(arr, item) { let count=0; arr.forEach(element => { if(element==item){ count++; } }); return count;}运行环境:J原创 2021-04-20 19:55:45 · 117 阅读 · 0 评论 -
牛客前端篇——— FED25、添加元素
题目描述在数组 arr 的 index 处添加元素 item。不要直接修改数组 arr,结果返回新的数组示例1输入[1, 2, 3, 4], 'z', 2输出[1, 2, 'z', 3, 4]代码1function insert(arr, item, index) { let ans=[]; for(let i=0;i<arr.length;i++){ if(i==index){ ans.push(ite原创 2021-04-20 19:39:08 · 144 阅读 · 0 评论 -
牛客前端篇———FED24、数组合并
题目描述合并数组 arr1 和数组 arr2。不要直接修改数组 arr,结果返回新的数组示例1输入[1, 2, 3, 4], ['a', 'b', 'c', 1]输出[1, 2, 3, 4, 'a', 'b', 'c', 1]代码1(解构赋值)function concat(arr1, arr2) { return [...arr1, ...arr2];}运行环境:JavaScript (V8 6.0.0)运行时间:959ms占用内存:7786原创 2021-04-20 19:25:32 · 198 阅读 · 0 评论 -
牛客前端篇——— FED23、删除数组第一个元素
题目描述删除数组 arr 第一个元素。不要直接修改数组 arr,结果返回新的数组示例1输入[1, 2, 3, 4]输出[2, 3, 4]代码1(利用slice)//利用slicefunction curtail(arr) { return arr.slice(1);}运行环境:JavaScript (V8 6.0.0)运行时间:1381ms占用内存:77896KBJavaScript slice() 方法(会返回新数组)原创 2021-04-20 19:09:48 · 185 阅读 · 0 评论 -
牛客前端篇——— FED22、添加元素
题目描述在数组 arr 开头添加元素 item。不要直接修改数组 arr,结果返回新的数组示例1输入[1, 2, 3, 4], 10输出[10, 1, 2, 3, 4]代码1JavaScriptforEach()方法function prepend(arr, item) { let ans=[]; ans.push(item); arr.forEach(function(val,index){ans.push(val);});..原创 2021-04-20 18:56:18 · 192 阅读 · 0 评论 -
牛客前端篇———FED21、删除数组最后一个元素
题目描述删除数组 arr 最后一个元素。不要直接修改数组 arr,结果返回新的数组示例1输入[1, 2, 3, 4]输出[1, 2, 3]代码1:function truncate(arr) { let ans=[]; for(let i=0;i<arr.length-1;i++){ ans.push(arr[i]); } return ans;}运行环境:JavaScript (V8 6.0.0)运行原创 2021-04-20 18:21:31 · 145 阅读 · 0 评论 -
牛客前端篇———FED20、添加元素
题目描述在数组 arr 末尾添加元素 item。不要直接修改数组 arr,结果返回新的数组示例1输入[1, 2, 3, 4], 10输出[1, 2, 3, 4, 10]JavaScript slice() 方法(会返回新数组)代码function append(arr, item) { var arr2=arr.slice(0); // slice(start, end)浅拷贝数组 arr2.push(item);原创 2021-04-19 21:06:05 · 117 阅读 · 0 评论