![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaScript练习
Potato_XX
这个作者很懒,什么都没留下…
展开
-
19. JS编程之遍历对象属性
题目描述找出对象 obj 不在原型链上的属性(注意这题测试例子的冒号后面也有一个空格~)1、返回数组,格式为 key: value2、结果数组不要求顺序示例//输入var C = function() {this.foo = 'bar'; this.baz = 'bim';}; C.prototype.bop = 'bip'; iterate(new C());//输出["foo: bar", "baz: bim"]编程实现用for(var key in obj)遍历对象,obj.原创 2020-11-09 18:54:53 · 257 阅读 · 0 评论 -
18. JS编程之批量改变对象的属性(如何向构造函数中添加对象属性)
题目描述给定一个构造函数 constructor,请完成 alterObjects 方法,将 constructor 的所有实例的 greeting 属性指向给定的 greeting 变量。示例//输入var C = function(name) {this.name = name; return this;}; var obj1 = new C('Rebecca'); alterObjects(C, 'What\'s up'); obj1.greeting;//输出What's up题原创 2020-11-09 17:55:18 · 708 阅读 · 0 评论 -
17. JS编程之二进制和十进制的相互转换
十进制转二进制十进制转二进制的方法toString()方法toSrting()方法可把一个 Number 对象转换为一个字符串NumberObject.toString(radix);radix为可选参数,表示数字的基数,把radix设为2,即可得到二进制的字符串。除2取余法题目1获取数字 num 二进制形式第 bit 位的值。注意:1、bit 从 1 开始2、返回 0 或 13、举例:2 的二进制为 10,第 1 位为 0,第 2 位为 1示例//输入128, 8原创 2020-11-09 17:02:41 · 1519 阅读 · 0 评论 -
16. JS编程之函数柯里化
题目描述已知 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 的调用参数编程实现//箭头函数(ES6)function curryIt原创 2020-11-08 22:17:33 · 189 阅读 · 0 评论 -
15. JS编程之使用函数的arguments对象
题目描述函数 useArguments 可以接收 1 个及以上的参数。请实现函数 useArguments,返回所有调用参数相加后的结果。本题的测试参数全部为 Number 类型,不需考虑参数转换。示例//输入1, 2, 3, 4//输出10考察知识点:将arguments对象转为数组的方法Array.prototype.slice.call(arguments)或[].silce.call(arguments)[...arguments]用for循环: var arr = []原创 2020-11-08 20:08:41 · 202 阅读 · 0 评论 -
14. JS编程之函数传参
题目描述将数组 arr 中的元素作为调用函数 fn 的参数示例//输入function (greeting, name, punctuation) { //函数fn return greeting + ', ' + name + (punctuation || '!');}['Hello', 'Ellie', '!']//数组arr//输出Hello, Ellie!考查知识点:如何将数组传递给函数作为参数fun.apply(thisArg ,[argArray] )第一个参数指原创 2020-11-08 15:01:26 · 130 阅读 · 0 评论 -
13. JS编程之流程控制
题目描述实现 fizzBuzz 函数,参数 num 与返回值的关系如下:1、如果 num 能同时被 3 和 5 整除,返回字符串 fizzbuzz2、如果 num 能被 3 整除,返回字符串 fizz3、如果 num 能被 5 整除,返回字符串 buzz4、如果参数为空或者不是 Number 类型,返回 false5、其余情况,返回参数 num示例//输入15//输出fizzbuzz知识点:判断变量是否为number的方法typeof(num)该方法返回num的类型,可以识原创 2020-11-08 13:56:42 · 132 阅读 · 0 评论 -
12. JS编程之计时器
题目描述实现一个打点计时器,要求1、从 start 到 end(包含 start 和 end),每隔 100 毫秒 console.log 一个数字,每次数字增幅为 12、返回的对象中需要包含一个 cancel 方法,用于停止定时操作3、第一个数需要立即输出。知识点扩展:JavaScript中的定时器有两种,setInterval()和setTimeout()。setInterval(code, millisec, lang)按指定周期反复调用函数或表达式。code — 要调用的函数或要原创 2020-11-07 20:49:27 · 344 阅读 · 0 评论 -
11. JS编程之查找元素在数组中的位置
题目描述在数组 arr 中,查找值与 item 相等的元素出现的所有位置示例//输入['a','b','c','d','e','f','a','b','c'] 'a'//输出[0, 6]方法一新创建一个数组用来存储结果,利用forEach()循环数组,找出数组中与元素target相同的元素,将其位置push进结果数组。遍历数组还可用for和for...in。function findAllOccurrences(arr, target) { var Arr = []; a原创 2020-11-07 11:41:06 · 6280 阅读 · 0 评论 -
10. JS编程之求数组元素的二次方
题目描述为数组 arr 中的每个元素求二次方。不要直接修改数组 arr,结果返回新的数组示例//输入[1, 2, 3, 4]//输出[1, 4, 9, 16]方法一使用arr.map(),为数组的所有元素调用求二次方的函数,并将结果作为一个新数组输出(平方还可用Math.pow(x,2)来计算)。function square(arr) { return arr.map((e)=>e*e);}`方法二利用for..of来遍历数组的元素,将计算的平方push进一个新数原创 2020-11-06 10:13:24 · 1255 阅读 · 0 评论 -
9. JS编程之查找数组中重复的元素
题目描述找出数组 arr 中重复出现过的元素//示例://输入[1, 2, 4, 4, 3, 3, 1, 5, 3]//输出[1, 3, 4]思路:新创建一个空数组储存结果,遍历原数组找出重复出现的元素,然后判断结果数组中是否存在该元素,不存在就push进去,存在就跳过判断下一个。遍历数组:可用两个for循环:用arr[i] ==arr[j]判断是否存在重复元素。也可用forEach()和for…in,map(),filter():用arr.indexOf(elem) ==arr.l原创 2020-11-05 10:58:47 · 11525 阅读 · 1 评论 -
8. JS编程之统计指定元素在数组中出现的次数
题目描述统计数组 arr 中值等于 item 的元素出现的次数输入[1, 2, 4, 4, 3, 4, 3], 4输出3方法一创建一个变量count统计元素数量,用forEach()遍历数组,用if语句判断每一个数组元素与item是否相等,相等则count+1。function count(arr, item) { var count = 0; arr.forEach((elem)=>{ if(item === elem){原创 2020-11-04 01:21:36 · 5797 阅读 · 0 评论 -
7. JS编程之在数组指定位置添加元素
题目描述在数组 arr 的 index 处添加元素 item。不要直接修改数组 arr,结果返回新的数组输入[1, 2, 3, 4], 'z', 2输出[1, 2, 'z', 3, 4]方法一先用slice()拷贝一份原数组,然后用splice()把item添加到指定的index位置。splice(index,delNum,add1,add2,...)是可以向数组中删除或添加元素,index指定位置,delNum是删除个数,为0的话就不删除元素,后面的参数就是需要在index位置添加的元原创 2020-11-03 21:40:52 · 1590 阅读 · 0 评论 -
6. JS编程之合并数组
题目描述合并数组 arr1 和数组 arr2。不要直接修改数组 arr,结果返回新的数组输入[1, 2, 3, 4], ['a', 'b', 'c', 1]输出[1, 2, 3, 4, 'a', 'b', 'c', 1]方法一用concat()方法将两个数组连接合并为一个新数组返回。function concat(arr1, arr2) { return arr1.concat(arr2);}方法二先用slice()拷贝数组arr1,再用push.apply()方法将ar原创 2020-11-03 20:34:17 · 787 阅读 · 0 评论 -
5. JS编程之向数组开头添加或删除元素
向数组开头添加元素题目描述在数组 arr 开头添加元素 item。不要直接修改数组 arr,结果返回新的数组输入[1, 2, 3, 4], 10输出[10, 1, 2, 3, 4]方法一用unshift()方法在数组首位添加元素,unshift方法会直接改变原数组,所以先利用slice()方法浅拷贝一份数组再进行添加。function prepend(arr, item) { var Arr = arr.slice(); Arr.unshift(item); .原创 2020-11-03 20:01:32 · 988 阅读 · 0 评论 -
4. JS编程之数组末尾添加或删除元素
题目描述在数组 arr 末尾添加元素 item。不要直接修改数组 arr,结果返回新的数组输入[1, 2, 3, 4], 10输出[1, 2, 3, 4, 10]方法一利用slice()方法浅拷贝一份数组,即在新数组中进行添加和删除都不会改变原数组。也可通过for循环复制拷贝。然后利用push()将元素添加到数组末尾。function append(arr, item) { var Arr = arr.slice(0); Arr.push(item); ret原创 2020-11-03 19:08:28 · 3090 阅读 · 0 评论 -
3. JS编程之移除数组中的元素
题目描述移除数组 arr 中的所有值与 item 相等的元素。不要直接修改数组 arr,结果返回新的数组输入[1, 2, 3, 4, 2], 2输出[1, 3, 4]方法一新建一个空数组,利用for循环遍历数组,判断数组成员与item是否相等,将不相等的成员pus进新数组。function remove(arr, item) { var newArr = []; for(let i=0; i<arr.length; i++){ if(arr[i]!=原创 2020-11-03 16:55:43 · 293 阅读 · 0 评论 -
2. JavaScript编程之数组求和
题目描述计算给定数组 arr 中所有元素的总和输入描述:数组中的元素均为 Number 类型示例1输入[ 1, 2, 3, 4 ]输出10思路:可以使用for循环、forEach()、map()、reduce()等进行遍历来求和,下面是这四种方法的比较。方法一常规循环:使用for循环进行遍历求和。方法二使用forEach()遍历数组的所有成员调用求和函数,forEach方法无返回值。array.forEach(function(currentValue, index, ar原创 2020-11-03 16:00:28 · 1475 阅读 · 0 评论 -
1. JavaScript编程之查找数组元素位置
题目描述找出元素 item 在给定数组 arr 中的位置输出描述:如果数组中存在 item,则返回元素在数组中的位置,否则返回 -1示例输入[ 1, 2, 3, 4 ], 3输出2方法一直接使用Array中的indexOf()方法,查找元素在数组中首次出现的位置,找到返回元素所在位置,找不到返回-1。function indexOf(arr, item) { return arr.indexOf(item); }var array = [[1, 2, 3, 4],原创 2020-11-03 14:29:00 · 1276 阅读 · 0 评论