看题(答案在后面),题目全部是函数封装哦。
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
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
function count(arr, item) {
let n=0
[外链图片转存中…(img-EARMQbsm-1726075059972)]
[外链图片转存中…(img-igfTgVIS-1726075059973)]
[外链图片转存中…(img-ojxXdSZe-1726075059973)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!