牛客网js能力测评--我的解题方法

本文介绍了一系列JavaScript数组操作的方法,包括查找元素位置、求和、删除特定元素、追加元素、截断数组、预置元素、裁剪数组、连接数组、插入元素、计算元素出现次数、查找所有出现位置、条件函数返回、类型转换、比较值相等、定时器应用、特殊函数处理、参数传递调整、上下文改变执行、FizzBuzz游戏实现、数组元素作为函数参数以及改变函数执行上下文。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、在这里插入图片描述
方法:

function indexOf(arr,index){
    return arr.indexOf(index)
}

2、在这里插入图片描述
方法:

function sum(arr){
    var count=0;
    for(var a of arr){
        count+=a
    }
    return count;
}

3、在这里插入图片描述
方法:

function remove(arr,item){
    var newArr=[];
    for(var i=0;i<arr.length;i++){
        if(arr[i]!=item){
            newArr.push(arr[i])
        }
    }
    return newArr;
}

4、
方法:

function append(arr, item) {
    var arrCopy=arr.slice();
    arrCopy.push(item);
    return arrCopy;
}

5、

function truncate(arr){
    var newArr=arr.slice();
    newArr.pop(arr);
    return newArr;
}

6、
在这里插入图片描述

function prepend(arr, item) {
    var newArr=arr.slice();
    newArr.unshift(item);
    return newArr;
}

7、在这里插入图片描述
方法:

function curtail(arr) {
    var newArr=arr.slice();
    newArr.shift();
    return newArr;
}

8、在这里插入图片描述
方法:

function concat(arr1, arr2) {
    var add=arr1.concat(arr2);
    return add;
}

9、在这里插入图片描述
方法:

function insert(arr, item, index) {
    var newArr=arr.slice();
    newArr.splice(index,0,item);
    return newArr;
}

10、
在这里插入图片描述
方法:

function count(arr, item) {
    var count=0;
    for(var a of arr){
        if(a==item){
            count++
        }
    }
    return count;
}

11、
在这里插入图片描述
方法:

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

12、在这里插入图片描述
在这里插入图片描述
方法:

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

13、正确使用parseInt
修改 js 代码中 parseInt 的调用方式,使之通过全部测试用例

示例1
输入
‘12’
输出
12

示例2
输入
‘12px’
输出
12

示例3
输入
‘0x12’
输出
0

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

14、完全等同
判断 val1 和 val2 是否完全等同
方法:

function identity(val1, val2) {
    return val1===val2?true:false;
}

15、
实现一个打点计时器,要求
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)
        }
    }
}

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

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

17、函数传参
将数组 arr 中的元素作为调用函数 fn 的参数

示例1
输入
function (greeting, name, punctuation) {return greeting + ', ’ + name + (punctuation || ‘!’);}, [‘Hello’, ‘Ellie’, ‘!’]
输出
Hello, Ellie!

方法:

function argsAsArray(fn, arr) {
    return fn.apply(this,arr);
}

18、
将函数 fn 的执行上下文改为 obj 对象

示例1
输入
function () {return this.greeting + ', ’ + this.name + ‘!!!’;}, {greeting: ‘Hello’, name: ‘Rebecca’}
输出
Hello, Rebecca!!!

方法:

function speak(fn, obj) {
    return fn.apply(obj,obj)
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值