javascrip之练习测试(2)

来源:互联网 发布:幼儿教育发展前景知乎 编辑:程序博客网 时间:2024/05/16 19:26

测试题来源:

https://www.nowcoder.com/practice/edbc7496a36e433c89d298b9256af856?tpId=6&tqId=10951&rp=1&ru=/ta/js-assessment&qru=/ta/js-assessment/question-ranking

题目11描述

统计数组 arr 中值等于 item 的元素出现的次数
示例1

输入

[1, 2, 4, 4, 3, 4, 3], 4

输出

3
for循环
function count(arr, item) {    var count = 0;    for(var i=0; i<arr.length; i++) {    if(arr[i] === item) {        count++;    }    }    return count;}


foreach

function count(arr, item) {   var count = 0;  arr.forEach(function(a) {  a == item ? count=count+1 :count=count+0;  });  return count;}
==与===区别摘抄自   http://blog.sina.com.cn/s/blog_4b32835b01014iv9.html
1、对于string,number等基础类型,==和===是有区别的1)不同类型间比较,==之比较“转化成同一类型后的值”看“值”是否相等,===如果类型不同,其结果就是不等2)同类型比较,直接进行“值”比较,两者结果一样2、对于Array,Object等高级类型,==和===是没有区别的进行“指针地址”比较3、基础类型与高级类型,==和===是有区别的1)对于==,将高级转化为基础类型,进行“值”比较2)因为类型不同,===结果为false

题目12描述

找出数组 arr 中重复出现过的元素
示例1

输入

[1, 2, 4, 4, 3, 3, 1, 5, 3]

输出

[1, 3, 4]
function duplicates(arr) {
    var a=arr.sort(),b=[];
    for(var i in a){
        if(a[i]==a[i-1] && b.indexOf(a[i])==-1) b.push(a[i]); 
    }
    return b;
}

题目13描述

为数组 arr 中的每个元素求二次方。不要直接修改数组 arr,结果返回新的数组
示例1

输入

[1, 2, 3, 4]

输出

[1, 4, 9, 16]

function square(arr) {
for(var i=0;i<arr.length;i++){
        arr[i]=arr[i]*arr[i];
        }
     return arr;
}


题目14描述

在数组 arr 中,查找值与 item 相等的元素出现的所有位置
示例1

输入

'abcdefabc'

输出

[0, 6]

function findAllOccurrences(arr, target) {
    var result=[];
    for(var i=0;i<arr.length;i++){
        if(arr[i]===target){
            result.push(i);
        }
    }
    return result;
}


function findAllOccurrences(arr, target) {
var result=[],index=arr.indexOf(target);
    while(index>-1){
        result.push(index);
        index=arr.indexOf(target,index+1);
    }
    return result;
}

题目15描述

给定的 js 代码中存在全局变量,请修复
原题
function globals() {
    myObject = {
      name : 'Jory'
    };
    return myObject;
}

改后

function globals() {
    var myObject = {
      name : 'Jory'
    };
    return myObject;
}

题目16描述

请修复给定的 js 代码中,函数定义存在的问题
示例1

输入

true

输出

a
原题

function functions(flag) {
    if (flag) {
      function getValue() { return 'a'; }
    } else {
      function getValue() { return 'b'; }
    }
    return getValue();
}

改后

function functions(flag) {
    if (flag) {
     var getValue= function () { return 'a'; }
    } else {
     var getValue=function () { return 'b'; }
    }
    return getValue();
}

题目17描述

修改 js 代码中 parseInt 的调用方式,使之通过全部测试用例
示例1

输入

'12'

输出

12
示例2

输入

'12px'

输出

12
示例3

输入

'0x12'

输出

0

原题

function parse2Int(num) {
    return parseInt(num);
}

改后

function parse2Int(num) {
    return parseInt(num,10);
}

详情请见w3

题目18描述

判断 val1 和 val2 是否完全等同
function identity(val1, val2) {
    return val1===val2;
}

题目描19述

实现一个打点计时器,要求
1、从 start 到 end(包含 start 和 end),每隔 100 毫秒 console.log 一个数字,每次数字增幅为 1
2、返回的对象中需要包含一个 cancel 方法,用于停止定时操作
3、第一个数需要立即输出
在此提供一个方法吗,在出题的网站上的名叫希留提交的

function count(start, end) {
  //立即输出第一个值
  console.log(start++);
     var timer = setInterval(function(){
         if(start <= end){
             console.log(start++);
         }else{
             clearInterval(timer);
         }
     },100);
    //返回一个对象
     return{
         cancel : function(){
             clearInterval(timer);
         }
     };
 }

题目20描述

实现 fizzBuzz 函数,参数 num 与返回值的关系如下:
1、如果 num 能同时被 3 和 5 整除,返回字符串 fizzbuzz
2、如果 num 能被 3 整除,返回字符串 fizz
3、如果 num 能被 5 整除,返回字符串 buzz
4、如果参数为空或者不是 Number 类型,返回 false
5、其余情况,返回参数 num
示例1

输入

15

输出

fizzbuzz
function fizzBuzz(num) {
if(num%3 == 0 && num%5 == 0)
    return "fizzbuzz";
    else if(num%3 == 0)
        return "fizz";
    else if(num%5 == 0)
        return "buzz";
    else if(num == null || typeof num != "number")
        return false;
    else return num;
}

每一篇,10题,还在继续编辑中,需要的朋友关注下