当前位置:网站首页>牛客刷题:手动实现数组filter方法
牛客刷题:手动实现数组filter方法
2022-08-02 21:27:00 【废物的自我修养记录】
题目:
描述
请补全JavaScript代码,要求实现Array.filter函数的功能且该新函数命名为"_filter"。
示例1
输入:[1,2]._filter(i => i>1)
输出:[2]
根据给出的示例可以看出是数组直接调用的_filter方法,所以可以判断出这样是挂载在Array的原型链上的,和原生filter同理
实现
1. _filter接受一个函数作为参数,所以我们先给要实现在函数写一个形参callback来接收这个参数
Array.prototype._filter=function(callback){
}
2. 调用完_filter方法后会直接返回一个数组,所以我们也要先定义一个空数组用来接收callback判断后的值,然后再return出去
Array.prototype._filter=function(callback){
let result=[];
return result;
}
3. 重点: 先观查callback函数(示例中即 i => i>1) ,这个callback的返回值是一个布尔值,总会是true或false,所以我们要根据这个布尔值当他为true的时候就把值加入到result新数组中
Array.prototype._filter=function(callback){
let result=[];
// 为什么能直接用this,谁调用的this就指向谁,可以去复习下this指向
for(let i=0;i<this.length;i++){
if(callback(this[i],i)){
result.push(this[i])
}
}
return result;
}
4. _fitler方法实现完成
console.log([1,2,3]._filter(x=>x>2)) // 3
边栏推荐
- 包管理工具npm- node package management相关知识 、检查包更新、NPM包上传、更换镜像、npm ERR! registry error parsing json
- @Transactional 事务调用与生效场景总结
- [c] Detailed explanation of operators (1)
- [C题目]力扣141. 环形链表
- 总结嵌入式C语言难点(2部分)
- 面试了个985毕业的,回答“性能调优”题时表情令我毕生难忘
- LeetCode 2360. 图中的最长环 基环树找环+时间戳
- 牛客每日刷题之链表
- 模糊查询like用法实例(Bee)
- js how to get the browser zoom ratio
猜你喜欢
随机推荐
hi!Don't look at how to SAO gas dye-in-the-wood in MySQL?
【STM32学习2】存储器相关概念与操作
最近火爆朋友圈的“广告电商”,核心商业模式是什么,广告收入真实靠谱吗?
【3D视觉】深度摄像头与3D重建
矩阵白化原理及推导
Mysql用户管理
golang 刷leetcode:统计打字方案数
YARN资源调度系统介绍
搭建Spark开发环境(第二弹)
Adobe官方清理工具Adobe Creative Cloud Cleaner Tool使用教程
VisualStudio 制作Dynamic Link Library动态链接库文件
测试ESP32-Zigbee转发命令 : 滑轨、继电器控制
What is the core business model of the "advertising e-commerce" that has recently become popular in the circle of friends, and is the advertising revenue really reliable?
源码构建LAMP环境-3
[c] Detailed explanation of operators (1)
matplotlib绘图的核心原理讲解(超详细)
增删改查这么多年,最后栽在MySQL的架构设计上!
JumpServer开源堡垒机完成龙芯架构兼容性认证
Electrical diagram of power supply system
ORB SLAM3加载Vocabulary更快ORBvoc.bin