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. 如果存在多个同名参数,则返回数组**


持续更新中。。。

原创粉丝点击