js常见习题集总结
来源:互联网 发布:windows下修复grub 编辑:程序博客网 时间:2024/05/22 13:23
数组
T1.找出元素 item 在给定数组 arr 中的位置
function area(arr,num) { return arr.indexOf(num);}console.log(area([1,2,3,4,5,6,7,8], 2));
T2.计算数组arr中所有元素的总和
function sum(arr) { var a = 0; for(var i=0; i<arr.length; i++) { a += arr[i]; } return a;}console.log(sum([1,2,3,4,5]));
T3.移除数组 arr 中的所有值与 item 相等的元素。不要直接修改数组 arr,结果返回新的数组
function apartItem(arr, item) { var arrNew = []; for(var i=0; i<arr.length; i++) { if(arr[i] !== item) { arrNew.push(arr[i]); } } return arrNew;}console.log(apartItem([1,2,3,3,4,5], 3));
T4.移除数组 arr 中的所有值与 item 相等的元素,直接在给定的 arr 数组上进行操作,并将结果返回
function apartItem(arr, item) { //var arrNew = []; for(var i=0; i<arr.length; i++) { if(arr[i] == item) { arr.splice(i,1); i--; } } return arr;}console.log(apartItem([1,2,3,3,4,5], 3));
T5.在数组 arr 末尾添加元素 item。不要直接修改数组 arr,结果返回新的数组
function addItem(arr, item) { var arrNew = []; for(var i=0; i<arr.length; i++) { arrNew.push(arr[i]); } arrNew.push(item); return arrNew;}console.log(addItem([1,2,3,3,4,5], 3));
T6.删除数组 arr 最后一个元素。不要直接修改数组 arr,结果返回新的数组
push实现
function deleteItem(arr) { var arrNew = []; for(var i=0; i<arr.length-1; i++) { arrNew.push(arr[i]); } return arrNew;}console.log(deleteItem([1,2,3,3,4,5]));
pop实现
function deleteItem(arr) { var arrNew = []; for(var i=0; i<arr.length; i++) { arrNew.push(arr[i]); } arrNew.pop(arr[i]); return arrNew;}console.log(deleteItem([1,2,3,3,4,5]));
T7.在数组 arr 开头添加元素 item。不要直接修改数组 arr,结果返回新的数组
function addItem(arr, item) { var arrNew = []; for(var i=0; i<arr.length; i++) { arrNew.push(arr[i]); } arrNew.unshift(item); return arrNew;}console.log(addItem([1,2,3,3,4,5], 0));
T8.删除数组 arr 第一个元素。不要直接修改数组 arr,结果返回新的数组
function deleteItem(arr) { var arrNew = []; for(var i=0; i<arr.length; i++) { arrNew.push(arr[i]); } arrNew.shift(arr); return arrNew;}console.log(deleteItem([1,2,3,3,4,5]));
T9.合并数组 arr1 和数组 arr2。不要直接修改数组 arr,结果返回新的数组
function link2(arr1,arr2) { var arrNew = []; var result = arrNew.concat(arr1,arr2) return result;}console.log(link2([1,2,3],[4,5,6]));
T10.在数组 arr 的 index 处添加元素 item。不要直接修改数组 arr,结果返回新的数组
function addItem(arr, item, index) { var arrNew = []; for(var i=0; i<arr.length; i++) { arrNew.push(arr[i]); } arrNew.splice(index, 0, item); return arrNew;}console.log(addItem([1,2,4], 3, 2));
T11.统计数组 arr 中值等于 item 的元素出现的次数
function showTime(arr, item) { var j = 0; for(var i=0; i<arr.length; i++) { if(arr[i] == item) { j += 1; } } return j;}console.log(showTime([1,2,3,3,4], 3));
T12.找出数组 arr 中重复出现过的元素
function showTime(arr) { var showN = []; arr.forEach(function(item) { if(arr.indexOf(item) !== arr.lastIndexOf(item) && showN.indexOf(item)==-1) showN.push(item); }) return showN;}console.log(showTime([1,2,3,3,4]));
T13.求二次方(为数组 arr 中的每个元素求二次方。不要直接修改数组 arr,结果返回新的数组 )
function square(arr) { var arrNew = arr.map(function(item, index, array) { return item * item; }); return arrNew;}console.log(square([1,2,3,3,4]));
T14.创建长度为100的数组
for循环实现
function arr100() { var arr = new Array(100); for(var i=0; i<arr.length; i++) { arr[i] = i; } return arr;}console.log(arr100());//[0, 1, 2, , , 98, 99]
ES5实现
Object.keys(Array.from({ length: 100 })); // ["0", "1", "2", ..., "98", "99"]
Object.keys(Array.apply(null,{ length: 100 }));// ["0", "1", "2", ..., "98", "99"]
Object.keys(Array.from({ length: 100 })).map(function(item) { return +item;});//[0, 1, 2, , , 98, 99]
Object.keys(Array.from({ length: 100 })).map(function(item) { return parseInt(item);});//[0, 1, 2, , , 98, 99]
ES6实现(普通实现)
Array.from(new Array(100).keys());//[0, 1, 2, , , 98, 99]
优雅进阶 - 扩展运算符
[...Array(100).keys()]或者[...Array.from({ length: 100 }).keys()]
T15.创建长度为100的随机数组
function arr100() { var arr = new Array(100); for(var i=0; i<arr.length; i++) { arr[i] = Math.ceil(Math.random()*100); } return arr;}console.log(arr100());
T16.数组去重
function arr100() { //定义一个含有100个元素的数组 var arr = new Array(100); //定义一个空数组,用于去重后存放数据 var arrNew = []; //随机生成100个数组元素 for(var i=0; i<arr.length; i++) { arr[i] = Math.ceil(Math.random()*100); } //数组去重 for(var j=0; j<arr.length; j++) { if(arrNew.indexOf(arr[j]) == -1) arrNew.push(arr[j]); } return arrNew;}console.log(arr100());
正则
T1.判断字符串是否包含数字
test实现
function includeNum(str) { var reg = /\d/; return reg.test(str);}console.log(includeNum("235rey34"));
match实现
function includeNum(str) { var reg = /[0-9]/; return str.match(reg);}console.log(includeNum("235rey34"));
T2.判断连续重复字母
test实现
function repeatWord(str) { var reg = /([a-zA-Z])\1/; return reg.test(str);}console.log(repeatWord("235rrey34"));
match实现
function repeatWord(str) { var reg = /([a-zA-Z])\1/; return str.match(reg);}console.log(repeatWord("235rrey34"));
T3.判断是否以元音字母结尾
function endWith(str) { var reg = /[aeiou]$/; return str.match(reg);}console.log(endWith("235rrey34e"));
T4.获取指定字符串
**给定字符串 str,检查其是否包含 3 个连续的数字
1、如果包含,返回最新出现的 3 个数字的字符串
2、如果不包含,返回 false**
function include3(str) { var result, reg = /[0-9]{3}/; if(reg.test(str)) { result = str.match(reg); return result[0]; } else { return false; }}console.log(include3("235rrey34e"));
T5.判断是否符合指定格式
**给定字符串 str,检查其是否符合如下格式
1、XXX-XXXX-XXXX
2、其中 X 为 Number 类型**
function pattern(str) { var reg = /^\d{3}-\d{4}-\d{4}$/; return reg.test(str);}console.log(pattern("135-4873-8025"));
T6.判断是否符合 USD 格式
1、以 $ 开始
2、整数部分,从个位起,满 3 个数字用 , 分隔
3、如果为小数,则小数部分长度为 2
4、正确的格式如:$1,023,032.03 或者 $2.03,错误的格式如:$3,432,12.12 或者 $34,344.3**
function dollars(str) { var reg = /^\$\d{1,3}(,\d{3})*(\.\d{2})?$/; return reg.test(str);}console.log(dollars("$11,342.56"));
T7.获取 url 参数
**获取 url 中的参数
1. 指定参数名称,返回该参数的值 或者 空字符串
2. 不指定参数名称,返回全部的参数对象 或者 {}
3. 如果存在多个同名参数,则返回数组**
持续更新中。。。
- js常见习题集总结
- 常见js选择器总结
- 习题集
- js常见排序总结结
- 常见js 函数集合总结
- [js点滴]JavaScript字符串常见方法总结
- 常见的原始JS选择器使用方法总结
- js创建类的几种常见方法总结
- JS中常见原生DOM操作API【总结整理)
- JS中常见原生DOM操作API【总结整理)
- web前端常见框架总结 ui框架+js框架
- 常见总结
- 常见总结
- 习题集1.16
- 习题集1.17
- 习题集1.19
- 习题集1.20
- Java习题集
- Sereja ans Anagrams(map)
- 位操作基础篇之位操作全面总结
- rails脚手架
- dubbo-admin版本是2.5.3/2.5.4版本在jdk8运行报错的解决办法
- timer
- js常见习题集总结
- PL/SQL中Lpad函数和Rpad函数的用法
- mybatis的几种传参方式
- 智能专项练习--HTML+CSS+bootstrap(1)
- 局域网通信学习
- 标号label---标出你想退出哪一个语句
- 数据库连接池性能比对(hikari druid c3p0 dbcp jdbc)
- redis acl 集群
- Dockerfile 最佳实践