前端面试题-js部分-数组去重-数组扁平化-伪数组转数组-面向对象的继承方式(ES5)

前端面试题-js部分-数组去重-数组扁平化-伪数组转数组-面向对象的继承方式ES5

  • 数组去重
  • 数组扁平化
  • 伪数组转换为数组
  • 面向对象的继承方式(ES5)

数组去重

1.利用es6 set 去重 Set 类型不允许有值重复

  		let arr1 = [1, 2, 4, 3, 5, 7, 1, 8, 2, 4, 9]console.log('数组去重前:', arr1)let s1 = new Set(arr1)let arr2=Array.from(s1)//转换为数组console.log('数组去重后:', arr2)

在这里插入图片描述
2.利用for循环嵌套for循环 然后splice去重 原地修改数组

 		let arr1 = [1, 2, 4, 3, 5, 7, 1, 8, 2, 4, 9]console.log('数组去重前:', arr1)for (let i = 0; i < arr1.length; i++) {for (let j = 0; j < arr1.length; j++) {if (i != j && arr1[i] == arr1[j]) {arr1.splice(j, 1)}}}console.log('数组去重后:', arr1)

在这里插入图片描述
3.利用indexof去重 查找方法 找到返回对应索引 找不到返回-1

 		let arr1 = [1, 2, 4, 3, 5, 7, 1, 8, 2, 4, 9]console.log('数组去重前:', arr1)let temp=[]for (let i = 0; i < arr1.length; i++) {if(temp.indexOf(arr1[i])==-1){temp.push(arr1[i])}}console.log('数组去重后:', temp)

在这里插入图片描述
4. 利用inncludes去重 这个方法是一个查找方法 结果是是否包含 返回true或false

 		let arr1 = [1, 2, 4, 3, 5, 7, 1, 8, 2, 4, 9]console.log('数组去重前:', arr1)let temp=[]for (let i = 0; i < arr1.length; i++) {if(!temp.includes(arr1[i])){temp.push(arr1[i])}}console.log('数组去重后:', temp)

在这里插入图片描述

数组扁平化

1.递归实现数组扁平化 (经典递归)

 let arr=[1,[2,4,5],2,[34,67]]function  flatarr(arr){let res=[]for(let i=0;i<arr.length;i++){if(Array.isArray(arr[i])){res=res.concat(flatarr(arr[i]))}else{res.push(arr[i])}}return res}let arr1= flatarr(arr)console.log('数组拍平前',arr)console.log('数组拍平后',arr1)

在这里插入图片描述
什么是递归
递归就是在运行的过程中调用自己,构成递归需要以下条件。子问题与原始问题为同样的事情且更为简单。不能无限制的调用本身,需要有一个出口,化简为非递归的情况处理。

2.es6 flat 函数 (推荐使用)

 let arr=[1,[2,4,5],2,[34,67]]let arr1= arr.flat()console.log('数组拍平前',arr)console.log('数组拍平后',arr1)

在这里插入图片描述
3.toString加上split实现 其中用到了一个字符串替换的方法 这种拍平和上面两种拍平不太一样 通过图片就能看出来

 let arr=[1,[2,4,5],2,[34,67]]let temp=arr.toString()temp.replaceAll('[','')temp.replaceAll(']','')let arr1=temp.split(',')console.log('数组拍平前',arr)console.log('数组拍平后',arr1)

在这里插入图片描述

伪数组转换为数组

1.Array.prototype.slice.call 函数的参数列表是位数组的一种

		function ttty(){let temp=argumentsconsole.log(arguments)let arr2= Array.prototype.slice.call(temp)console.log(arr2)}ttty(1,2,3,4,5,'hhhh')

在这里插入图片描述
2.[…xxx] 这个例子也是函数的参数

		function ttty(){let temp=argumentsconsole.log(arguments)let arr2= [...temp]console.log(arr2)}ttty(1,2,3,4,5,'hhhh')

在这里插入图片描述
3.Array.form 函数的参数列表这个方法也能转换 例子是set伪数组

		let arr1=[1, 2, 4, 3, 5, 7, 1, 8, 2, 4, 9]let s1=new Set(arr1)let arr2= Array.from(s1)console.log(s1)console.log(arr2)

在这里插入图片描述

面向对象的继承方式(ES5)

1.原型链的方式来实现继承
2.借用构造函数
3.组合继承
4.寄生式继承
5.继承组合式继承

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

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

相关文章

【郑益慧】模拟电子技术:7.Mos管的工作原理

Mos管的工作原理 Mos管的出现&#xff0c;几乎不怎么耗电。因此在集成电路中起了非常大的作用 在某些方面确实比晶体三极管强。 基本原理&#xff1a;依靠电场效应来控制。 电场效应几乎是没有电流的&#xff0c;没有电流几乎是没有功率的。 从控制上来说&#xff0c;消耗…

华为——NGFW Module安装在集群交换机上,二层双机负载分担部署,交换机重定向引流

NGFW Module安装在集群交换机上&#xff0c;二层双机负载分担部署&#xff0c;交换机重定向引流 业务需求 如图1所示&#xff0c;两台交换机集群组网&#xff0c;两块NGFW Module分别安装在两台交换机的1号槽位组成双机负载分担组网。NGFW Module工作在二层&#xff0c;也就是…

Stable Diffusion结构解析-以图像生成图像!

手把手教你入门绘图超强的AI绘画&#xff0c;用户只需要输入一段图片的文字描述&#xff0c;即可生成精美的绘画。给大家带来了全新保姆级教程资料包 &#xff08;文末可获取&#xff09; AIGC专栏3——Stable Diffusion结构解析-以图像生成图像&#xff08;图生图&#xff0c…

【活动回顾】CSDN 1024 程序员节城市站系列活动·成都站 - 圆满结束!

文章目录 前言一、活动介绍二、精彩分享内容及活动议程2.1、1024 活动限量周边大放送2.2、《COC 成都社区情况和活动介绍》2.3、CSDN 创始人蒋涛寄语2.4、《AI 重构世界》2.5、《新技术助力企业降本增效》2.6、现场互动情况2.7、《探索开源世界&#xff0c;开拓创新思路》2.8、…

用C#实现最小二乘法(用OxyPlot绘图)

最小二乘法介绍✨ 最小二乘法&#xff08;Least Squares Method&#xff09;是一种常见的数学优化技术&#xff0c;广泛应用于数据拟合、回归分析和参数估计等领域。其目标是通过最小化残差平方和来找到一组参数&#xff0c;使得模型预测值与观测值之间的差异最小化。 最小二…

电商API接口的应用|电商跨境电商商品采集高效解决方案

电商API接口的应用|电商跨境电商商品采集高效解决方案 面对数十万亿元的跨境电商市场&#xff0c;以阿里巴巴国际站为代表的跨境电商数字平台&#xff0c;在政策、需求以及供应链的驱动下&#xff0c;为中小企业提供了全产业链、全供应链一体化综合服务&#xff0c;让越来越多…

使用plotly dash 画3d圆柱(Python)

plotly3D &#xff08;3d charts in Python&#xff09;可以画3维图形 在做圆柱的3D装箱项目&#xff0c;需要装箱的可视化&#xff0c;但是Mesh &#xff08;3d mesh plots in Python&#xff09;只能画三角形&#xff0c;所以需要用多个三角形拼成一个圆柱&#xff08;想做立…

Python qt.qpa.xcb: could not connect to display解决办法

遇到问题&#xff1a;qt.qpa.xcb: could not connect to display 解决办法&#xff0c;在命令行输入&#xff1a; export DISPLAY:0 然后重新跑python程序&#xff0c;解决&#xff01; 参考博客&#xff1a;qt.qpa.xcb: could not connect to displayqt.qpa.plugin: Could …

Ubuntu搭建国标平台wvp-GB28181-pro

目录 简介安装和编译1.查看操作系统信息2.安装最新版的nodejs3.安装java环境4.安装mysql5.安装redis6.安装编译器7.安装cmake8.安装依赖库9.编译ZLMediaKit9.1.编译结果说明 10.编译wvp-GB28181-pro10.1.编译结果说明 配置1.WVP-PRO配置文件1.1.Mysql数据库配置1.2.REDIS数据库…

监听项目中指定属性数据,点击或模块显示时

当项目中&#xff0c;需要获取某个页面上、某个标签上、有指定自定义属性时&#xff0c;需要在点击该元素时进行公共逻辑处理&#xff0c;或该元素在显示的时候进行逻辑处理&#xff0c;这时可以定义一个公共的方法&#xff0c;在每个页面引用&#xff0c;并写入数据即可 &…

OpenHarmony RK3568 启动流程优化

目前rk3568的开机时间有21s&#xff0c;统计的是关机后从按下 power 按键到显示锁屏的时间&#xff0c;当对openharmony的系统进行了裁剪子系统&#xff0c;系统app&#xff0c;禁用部分服务后发现开机时间仅仅提高到了20.94s 优化微乎其微。在对init进程的log进行分析并解决其…

面向云服务的GaussDB全密态数据库

前言 全密态数据库&#xff0c;顾名思义与大家所理解的流数据库、图数据库一样&#xff0c;就是专门处理密文数据的数据库系统。数据以加密形态存储在数据库服务器中&#xff0c;数据库支持对密文数据的检索与计算&#xff0c;而与查询任务相关的词法解析、语法解析、执行计划生…

跨境ERP定制趋势预测:数字化转型助您赢得市场先机

随着全球贸易的不断融合和发展&#xff0c;跨境业务已成为许多企业拓展市场的重要途径。在这个背景下&#xff0c;ERP定制正逐渐成为企业数字化转型的关键利器。本文将为您预测跨境ERP定制的趋势&#xff0c;并探讨数字化转型如何助您赢得市场先机。 ERP定制趋势预测 1. 数据…

命令行启动Android Studio模拟器

1、sdk路径查看&#xff08;打开Android Studio&#xff09; 以上前提是安装的Android Studio并添加了模拟器&#xff01;&#xff01;&#xff01; 2、复制路径在终端进入到 cd /Users/duxi/Library/Android/sdk目录&#xff08;命令行启动不用打开Android Studio就能运行模拟…

【Java程序设计】【C00182】基于SSM的高校成绩报送管理系统(论文+PPT)

基于SSM的高校成绩报送管理系统&#xff08;论文PPT&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于ssm的高校成绩报送系统 本系统分为前台系统、管理员、教师以及学生4个功能模块。 前台系统&#xff1a;当游客打开系统的网址后&#xff0c;首…

25考研北大软微该怎么做?

25考研想准备北大软微&#xff0c;那肯定要认真准备了 考软微需要多少实力 现在的软微已经不是以前的软微了&#xff0c;基本上所有考计算机的同学都知道&#xff0c;已经没有什么信息优势了&#xff0c;只有实打实的有实力的选手才建议报考。 因为软微的专业课也是11408&am…

PyTorch自动微分机制的详细介绍

PyTorch深度学习框架的官方文档确实提供了丰富的信息来阐述其内部自动微分机制。在PyTorch中&#xff0c;张量&#xff08;Tensor&#xff09;和计算图&#xff08;Computation Graph&#xff09;的设计与实现使得整个系统能够支持动态的、高效的自动求导过程。 具体来说&#…

基于团簇阵列中的量子隧穿效应的氢气传感器

在科技日新月异的今天&#xff0c;传感器技术也在不断地发展和创新。其中&#xff0c;基于团簇阵列中的量子隧穿效应的氢气传感器&#xff0c;以其独特的优势和巨大的潜力&#xff0c;成为了气体检测技术领域的一颗新星。 一、什么是基于团簇阵列中的量子隧穿效应的氢气传感器&…

年度重磅更新!“AI+可视化拖拽”实现个性化页面极速开发!组件设计器即将上线!

AI智能开发&#xff01;网站一键复刻&#xff01;设计稿秒变成品&#xff01; 相信对很多关注低代码和AI技术的小伙伴来说&#xff0c; 都觉得像这些还只是停留在概念上的技术&#xff0c;很难落地实践。 但是在「织信」已经全部都做到了&#xff01; 无图无真相&#xff0…

企业车辆管理乱、用车难?来试试车辆管理系统!

车辆作为最重要的交通工具在企业中得以普及。随着车辆保有量的不断攀升&#xff0c;企业对于车辆管理的要求也越来越高&#xff0c;会要求管理的多维度和车辆使用的灵活性。 传统的表格管理方式很难及时跟进企业车辆的使用状态&#xff0c;导致企业车辆管理效率低、车辆使用调…