JavaScript能力测试01(简单级别),你能得多少分?我们的宗旨是碾压面试官!

看题(答案在后面),题目全部是函数封装哦。


1.封装一个函数 indexOf(arr,item) ,找出元素 item 在给定数组 arr 中的位置,不存在返回 -1

比如:arr [1,3,5,7,9]   item 7 返回 3

2.封装一个函数 sum(arr) ,计算给定数组 arr 中所有元素的总和

比如: [1,3,5] 返回 9

3.封装一个函数 remove(arr, item),删除数组 arr 中与item 相等的元素,原数组不变,返回新的数组

比如  arr : [1,3,5,7]   item : 5  返回:[1,3,7](这个是新数组)

4.封装一个函数 removeWithoutCopy(arr, item) ,移除数组 arr 中与 item 相等的元素,在原数组上进行操作,并返回此数组

比如  arr : [1,3,5,7]   item : 5  返回:[1,3,7] (这个是原数组)

5.封装一个函数 prepend(arr, item) ,在数组 arr 开头添加元素 item,原数组不变,返回新的数组

比如  arr : [1,3,5,7]   item : 9  返回:[9,1,3,5,7]

6.封装一个函数 count(arr, item),统计数组 arr 中值等于 item 的元素出现的次数

比如  arr : [1,3,5,7,5,8,5]   item : 5  返回:3

7.封装一个函数 duplicates(arr),找出数组 arr 中重复出现过的元素

比如 [1, 3, 3, 5, 3, 1, 5, 3,7,7] 返回[1,3,57]

8.封装一个函数 count(start, end) ,实现计时器功能

(1)从 start 到 end(包含 start 和 end),每隔 100 毫秒 console.log 一个数字,每次数字增幅为 1

(2)第一个数需要立即输出

(3)返回的对象中需要包含一个 cancel 方法,用于停止定时操作

9.封装一个函数 closures(arr, fn),闭包

(1)返回一个函数数组 result,长度与 arr 相同

(2)运行 result 中第 i 个函数,即 result[i](),结果与 fn(arr[i]) 相同

10.封装一个函数 secondary(fn) ,二次封装

(1)此函数返回一个result 函数,调用result 函数后,返回的结果与调用函数 fn 的结果一致

(2)fn 的调用参数为 secondary的第一个参数之后的全部参数以及 result 的调用参数

答案参考(自己做的,不是标准答案哦)


答案1

function indexOf(arr, item) {

for(var i=0;i<arr.length;i++){

if(arr[i]==item){

console.log(i)

return i;

}

}

return -1;

}

答案2

function sum(arr) {

var sum=0;

arr.forEach(function(item){

sum+=item;

})

return sum

}

答案3

function remove(arr, item) {

var newArr=[];

arr.forEach(function(a){

if(a!=item){

newArr.push(a);

}

})

return newArr

}

答案4

function removeWithoutCopy(arr, item) {

for(let i=0;i<arr.length;i++){

if(arr[i]==item){

arr.splice(i,1);

i–;

}

}

return arr;

}

答案5

function prepend(arr, item) {

var newArr=[item];

newArr = newArr.concat.apply(newArr,arr)

return newArr;

}

答案6

function count(arr, item) {

let n=0

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

function count(arr, item) {

let n=0

[外链图片转存中…(img-EARMQbsm-1726075059972)]
[外链图片转存中…(img-igfTgVIS-1726075059973)]
[外链图片转存中…(img-ojxXdSZe-1726075059973)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值