【算法】牛客网前端编程(10-20)

来源:互联网 发布:世界史书推荐知乎 编辑:程序博客网 时间:2024/04/20 10:01

来源:牛客网 链接:https://www.nowcoder.com/ta/js-assessment

1.

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

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

}

2.

//找出数组 arr 中重复出现过的元素 
function duplicates(arr) {
var rep=[];
    arr.sort();
    var j=0;
    for(var i=0;i<arr.length;i++){
        if(arr[i]===arr[i+1]){
            if(j==0){
                rep.push(arr[i]);
                j++;
            }
            else if(rep[j-1]!==arr[i]){
            rep.push(arr[i]);
                j++;
            }
        }
    }
    return rep;
}


3.

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

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

4.

//在数组 arr 中,查找值与 item 相等的元素出现的所有位置 
function findAllOccurrences(arr, target) {
    var loc=[];
for(var i=0;i<arr.length;i++){
        if(arr[i]===target){
            loc.push(i);
        }
    }
    return loc;
}

5.

//给定的 js 代码中存在全局变量,请修复

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

6.

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

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

7.

//按10进制去处理字符串,碰到非数字字符,会将后面的全部无视

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

8.

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

9.

//实现一个打点计时器,要求
//1、从 start 到 end(包含 start 和 end),每隔 100 毫秒 console.log 一个数字,每次数字增幅为 1
//2、返回的对象中需要包含一个 cancel 方法,用于停止定时操作
//3、第一个数需要立即输出
function count(start, end) {
    console.log(start++);
    var c=setInterval(function(){   
        if(start<=end){
            console.log(start++);
        }
        else{
            clearInterval(c);
        }
    },100);
    return {
        cancel:function(){
                clearInterval(c);
           }
    };
}

10

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

*/

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;
}

0 0