【JavaScript手撕代码】flat、push、filter、map、repeat

flat

借助上面递归concat扁平化即可

Array.prototype.myflat = function(deep=1) {let res = []deep--for(const element of this) {if(Array.isArray(element) && deep) {res = res.concat(element.myflat(deep))}else{res.push(element)}}return res
}

在这里插入图片描述

push

根据我们对push的认识写就行

Array.prototype.myPush = function(...args) {for(let i=0; i<args.length; i++) {this[this.length] = args[i]}return this.length
}

在这里插入图片描述

filter

也很简单,只是注意不改变原数组

Array.prototype.myFilter = function(callback) {const res = []for(let i=0; i<this.length; i++){callback(this[i], i, this) && res.push(this[i])}return res
}

在这里插入图片描述

map

同样不改变原数组,根据传入的函数返回值修改对应项就行

Array.prototype.myMap = function(callback) {const res = []for(let i=0; i<this.length; i++){res.push(callback(this[i], i, this))}return res
}

在这里插入图片描述

repeat

把一个字符串copy指定次数(向下取整)

遍历

String.prototype.myRepeat = function(number=1) {let str = thislet res = ''if(number < 0){return new Error('Illegal count!')}while(number) {res += strnumber--}return res
}

在这里插入图片描述

利用concat

String.prototype.myRepeat = function(number=1) {return n>=0 ? this.concat(this.myRepeat(--number)) : ''
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/204025.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在线客服的工作职责有哪些?

信息时代发展的脚步越来越快&#xff0c;在线客服成为了许多企业不能缺失的一部分。他们扮演着与客户沟通的桥梁&#xff0c;为客户提供及时高效又专业的服务。那么在线客服的工作职责究竟有哪些呢&#xff1f; 用心接待客户咨询 在线客服的首要职责是接待客户的咨询。无论是网…

FAQ:Constructors篇

文章目录 What’s the deal with constructors?Is there any difference between List x; and List x();?Can one constructor of a class call another constructor of the same class to initialize the this object?Is the default constructor for Fred always Fred::Fr…

urllib爬虫 应用实例(三)

目录 一、 ajax的get请求豆瓣电影第一页 二、ajax的get请求豆瓣电影前十页 三、ajax的post请求肯德基官网 一、 ajax的get请求豆瓣电影第一页 目标&#xff1a;获取豆瓣电影第一页的数据&#xff0c;并保存为json文件 设置url&#xff0c;检查 --> 网络 --> 全部 -…

zedbox 实现配置 yolov5

Stereolabs 的 ZED Box 是一款由 NVIDIA Jetson™ 提供支持的紧凑型网关&#xff0c;用于在移动和现场情况下挑战 AIoT&#xff08;物联网&#xff09;。它旨在将空间感知和理解带到边缘&#xff0c;并聚合、处理和分析来自 3D 传感器和设备的数据。 相关内容 1.win10下 cud…

下载加速器steam++

解决auto-py-to-exe打包文件时无法访问浏览器界面的问题。 下载地址&#xff1a;瓦特工具箱(Steam官网) - Watt Toolkit (steampp.net) 进入gitee后需要注册账号 3.0.0-rc.3 RMBGAME/SteamTools - Gitee.com 下载后安装即可 打开安装好的文件 成功打开

跨境电商危机公关:应对负面舆情的策略优化

随着跨境电商的快速发展&#xff0c;企业在全球市场中面临的竞争与挑战也日益复杂。在这个数字时代&#xff0c;负面舆情一旦爆发&#xff0c;可能对企业形象和经营造成深远影响。 因此&#xff0c;跨境电商企业需要建立有效的危机公关策略&#xff0c;以迅速、果断、有效地应…

Java中使用String字符串的注意事项

引言 介绍字符串在Java中的重要性和普遍性&#xff0c;以及本文将讨论的注意事项。 1. 字符串是不可变的 解释Java中字符串是不可变的概念&#xff0c;即一旦创建&#xff0c;字符串对象的值就不能被修改。强调在对字符串进行操作时应当创建新的字符串对象而不是修改原有的对…

R语言手册30分钟上手

文章目录 1. 环境&安装1.1. rstudio保存工作空间 2. 创建数据集2.1. 数据集概念2.2. 向量、矩阵2.3. 数据框2.3.1. 创建数据框2.3.2. 创建新变量2.3.3. 变量的重编码2.3.4. 列重命名2.3.5. 缺失值2.3.6. 日期值2.3.7. 数据框排序2.3.8. 数据框合并(合并沪深300和中证500收盘…

如何衡量和提高测试覆盖率?

衡量和提高测试覆盖率&#xff0c;对于尽早发现软件缺陷、提高软件质量和用户满意度&#xff0c;都具有重要意义。如果测试覆盖率低&#xff0c;意味着用例未覆盖到产品的所有代码路径和场景&#xff0c;这可能导致未及时发现潜在缺陷&#xff0c;代码中可能存在逻辑错误、边界…

短剧分销系统开发:短剧分销推广

近两年内&#xff0c;随着短剧的发展&#xff0c;节奏快、剧情紧凑的短剧逐渐成为了大众的“新宠”。短剧行业也凭着成本低、投资低、周期短的优势成为了众多创业者的首要选择&#xff0c;越来越多的专业团队加入到短剧的赛道中。 根据数据显示&#xff0c;我国短剧市场规模有…

马尔科夫决策过程(Markov Decision Process)揭秘

RL基本框架、MDP概念 MDP是强化学习的基础。MDP能建模一系列真实世界的问题&#xff0c;它在形式上描述了强化学习的框架。RL的交互过程就是通过MDP表示的。RL中Agent对Environment做出一个动作&#xff08;Action&#xff09;&#xff0c;Environment给Agent一个反馈&#xff…

JavaSE基础50题:6. 求出0~999之间的所有“水仙花数”并输出

概念 “水仙花数”是指一个三位数&#xff0c;其各位数字的立方和确好等于该数本身。 如&#xff1a;153 135333,则153是一个“水仙花数”。 【方法】 如何获得每一位的数&#xff1a;如(153) 个位: 153 % 10 3 十位: 153 / 10 15 15 % 10 5 百位: 153 / 100 1 代码 pu…

微信小程序动态加载图表[echart]

1.引入Echarts &#xff08;1&#xff09;将ec-canvas文件拷贝下来放到你自己的项目中&#xff1a; &#xff08;2&#xff09;在你需要使用Echarts的页面的json文件中引入Echarts "usingComponents": {"ec-canvas": "../utils/ec-canvas/ec-canva…

哈希计算-哈希值-定长-不可逆-唯一性

哈希计算是指使用哈希函数对输入的消息或数据进行处理&#xff0c;生成固定长度的哈希值或摘要。哈希函数将输入的任意长度数据映射为固定长度的输出&#xff0c;通常用于验证数据完整性、密码学安全、数据指纹等领域。 哈希计算的过程包括以下几个步骤&#xff1a; 输入数据&…

102. 二叉树的层序遍历 --力扣 --JAVA

题目 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 解题思路 利用Map以层级作为key进行初始数据存储&#xff0c;最后再遍历Map存储结果到List中&#xff1b;添加当前节点到当前层级…

编织魔法世界——计算机科学的奇幻之旅

文章目录 每日一句正能量前言为什么当初选择计算机行业计算机对自己人生道路的影响后记 每日一句正能量 人生就像赛跑&#xff0c;不在乎你是否第一个到达尽头&#xff0c;而在乎你有没有跑完全程。 前言 计算机是一个神奇的领域&#xff0c;它可以让人们创造出炫酷的虚拟世界…

android 13.0 第三方输入法app设置系统默认输入法

1.概述 在13.0的系统rom产品开发中,有定制功能需要要求设置默认输入法,替换掉系统的输入法,所以这就需要了解设置输入法的相关功能需求,然后根据输入法包名来设置默认输入法 接下来就来看如何实现相关功能的开发 2.第三方输入法app设置系统默认输入法的核心代码 framewor…

智能成绩表 - 华为OD统一考试(C卷)

OD统一考试(C卷) 分值: 100分 题目描述 小明来到某学校当老师,需要将学生按考试总分或单科分数进行排名,你能帮帮他吗? 输入描述 第1行输入两个整数,学生人数n和科目数量m。0<n<100,0<m<10 第2行输入m个科目名称,彼此之间用空格隔开。科目名称只由英文…

MybatisPlus批量插入(伪批量),增强为真实批量插入

项目基于优秀开源项目&#xff1a;若依 项目背景&#xff1a;项目中牵扯到数据批量导入&#xff0c;为提高性能&#xff0c;先考虑将MybatisPlus伪批量插入增强为真实批量插入 MybatisPlus源码&#xff1a; MybatisPlus支持批量插入&#xff0c;但是跟踪源码发现底层是将批量…

基于SSM框架的购物商城系统论文

摘 要 网络技术和计算机技术发展至今&#xff0c;已经拥有了深厚的理论基础&#xff0c;并在现实中进行了充分运用&#xff0c;尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代&#xff0c;所以对于信息的宣传和管理就很关键。因此商城购物信息的…