笔试经典题目

news/2025/1/15 13:28:21/文章来源:https://www.cnblogs.com/nwy2012/p/18672422


// 笔试经典题目
 let str = 'abc#name&defg'
// 01.测试字符串的翻转
const res = str.split('').reverse().join('')

 console.log('测试字符串的翻转',res);

02.取出里面的name

const index1 =str.indexOf('#')
 const index2 = str.indexOf('&')
const newName=str.slice(index1+1,index2)


03,数据扁平化
 const arr = [1,[2,[3,[4,5]]]]
 function fn(arr) {
 return arr.reduce((pre,cur)=>{
return pre.concat(Array.isArray(cur)? fn(cur):cur)
 })
}

 数据扁平化
 fi(list) {
 return arr.reduce((pre,cur)=>{
return pre.concat(Array.isArray(cur)?fi(cur):cur)
 })
 },
 const res = arr.flat(Infinity)

console.log('数据扁平化',res);
// 04.数组去重
const arr=[1,1,'1',true,false,true,'a']
// 第一种
// const res = Array.from(new Set(arr))

// 第二种
// const res = [...new Set(arr)]
// 第三种 include
 let res =[]
 arr.forEach(item=> {
 if(!res.includes(item)){
res.push(item)
}
 })

// 第4种 filter 与indexof
let arr=[]
 const res= arr.filter((item,index)=> arr.indexOf(item)===index) // 取反
 console.log('数组去重',res)
05.不确定参数求总和
 return this.list.reduce((sum,item)=> sum+ item.price,0)

// 第一种方法
sumCount(...arr) {
 return arr.reduce((sum,item)=> sum+item,0)
 },

console.log(this.sumCount(1,2,3,4,5))

// 第二种方法
 console.log(this.sumCount(1,2,3,4,5))
// 写一个sleep延时执行
sleep(time){
// return new Promise((res)=>{
// setTimeout(()=>{
// res(111)

// },time)
// })
// }
// console.log(22222);
// this.sleep(2000).then(res=>{
// console.log(res)
// })
// console.log(3333)
// this.sleep(2000).then(res=>{
// console.log(res)
// })

// 06 数组对象去重
// const newArr = [
// { goods:'1',quota:12,skuid:'1'},
// { goods:'2',quota:12,skuid:'2'},
// { goods:'1',quota:12,skuid:'1'},
// ]


// uniquerFn(arr,uniId) {
// const res = new Map()
// return newArr.filter(item=> !res.has(item[uniId]) && res.set(item[uniId],1))

// },


// console.log('uniqueFn(newArr, uniId)', this.uniquerFn(newArr, 'skuId'))
// console.log('数组对象去重',this.uniquerFn(newArr,goods));

// 给一个数组,返回结果,不要其中两个元素
// let arr = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
// 返回结果: [10, 9, 6, 5, 4, 3, 2, 1]

// 第一种方法
// const res =arr.slice(0,2).concat(arr.slice(4))
// 第二种方法 用数组来进行保留不等于index 的数据
// const res = arr.filter((item,index)=> index !==2 && index !==3)

// 组件 数据扁平转成数据结构

// getTreeData(arr,parentid) {
// function loop(parentId) {
// return arr.reduce((sum,item)=>{
// if(item.parentId===parentId) {
// item.children=loop(item.id)
// sum.push(item)
// }
// return sum

// },[])
// }
// return loop(parentid)

// }


// const flatArr = [
// { id: '01', parentId: 0, name: '节点1' },
// { id: '011', parentId: '01', name: '节点1-1' },
// { id: '0111', parentId: '011', name: '节点1-1-1' },
// { id: '02', parentId: 0, name: '节点2' },
// { id: '022', parentId: '02', name: '节点2-2' },
// { id: '023', parentId: '02', name: '节点2-3' },
// { id: '0222', parentId: '022', name: '节点2-2-2' },
// { id: '03', parentId: 0, name: '节点3' },

// ]
// const result = this.getTreeData(flatArr,0)
// console.log('reslut',result)

 

// 防抖

const throme=fn (fn,time){
const flag=true
return function() {
if(!flag) return
flag=false
setTimeout(()=>{
fn.apply(this)
flag=true
},time)
}
}

// 节流
const throttle=(fn,time) {
let flag=true
return function() {
if(!flag) return
flag=false
setTimeout(()=>{
fn.apply(this)
flag=true
},time)
}
}
<!-- 深拷贝 -->
deepCloneList() {
// 1.先校验传进来的对象类型
const isComplexDataType=obj=>
(typeof obj ==='object'
|| typeof obj==='function') &&
// eslint-disable-next-line valid-typeof
(typeof obj !== null)

const deepClone=function(obj,hash = new WeakMap()) {
if(obj.constructor===Date) {
return new Date(obj)
}
if(obj.constructor===RegExp) {
return new RegExp(obj)
}
if(hash.has(obj)) {
return hash.get(obj)
}

let allDesc=Object.getOwnPropertyDescriptor(obj)
let cloneObj=Object.create(Object.getPrototypeOf(obj),allDesc)

hash.set(obj,cloneObj)

for(let key of Reflect.ownKeys(obj)) {
cloneObj[key] =(isComplexDataType(obj[key])
&& typeof obj[key] !=='function')?
deepClone(obj[key],hash) : obj[key]
}
return cloneObj
}
},



// 基础版深度拷贝

// deepClone(obj) {
// 第二遍
// let cloneobj={}

// for(let key in obj) {
// if(typeof obj[key]==='object') {
// cloneobj[key] = this.deepClone(obj[key]) // 进行递归操作
// } else {
// cloneobj[key] = obj[key]
// }
// }
// return cloneobj

// 第一遍
// let cloneObj={}
// for(let key in obj) {
// if(typeof obj[key] ==='object') {
// cloneObj[key] =this.deepClone(obj[key])
// } else {
// cloneObj[key]=obj[key]
// }
// }
// return cloneObj
// },

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

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

相关文章

elasticsearch的RestAPI之操作文档

RestClient操作文档 新增文档 将DB表中的数据同步到elasticsearch 1)查询数据库 1.1)数据库查询后的结果是一个Hotel类型的对象1 @Data2 @TableName("tb_hotel")3 public class Hotel {4 @TableId(type = IdType.INPUT)5 private Long id;6 private St…

【VPX303】基于 3U VPX 总线架构的双银河飞腾 FT-M6678 DSP 信号处理平台(100%全国产化)

​产品概述 VPX303 是一款基于 3U VPX 总线架构的高性能信号处理板,板载 2 片国防科大银河飞腾 FT-M6678 多核浮点运算 DSP,可以实现各种实时性要求较高的信号处理算法。板卡每个 DSP 均支持 5 片 DDR3 SDRAM 实现数据缓存,两片DSP 之间通过 X4 SRIO 进行互联。每个 DSP 均引…

第七章 中断

本文是对《操作系统真象还原》第七章学习的笔记,欢迎大家一起交流。第七章 中断 本文是对《操作系统真象还原》第七章学习的笔记,欢迎大家一起交流。 a 启用中断 本节的主要任务是打开中断,并且使用时钟中断测试 知识部分 中断分类 中断可以分为外部中断和内部中断,这已经是…

PHP语法进阶

PHP语法进阶 数组 数组能够在单个变量中存储多个值,并且可以根据 键 访问其中的 值PHP有两种数组:数值数组、关联数组。 数值和关联两个词都是针对数组的键而言的。 先介绍下数值数组,数值数组是指数组的键是整数的数组,并且键的整数顺序是从0开始,依次类推。 数值数组 $m…

Agentic RAG 系统的崛起

探秘智能检索新境界:Agentic RAG 系统的崛起 📖阅读时长:10分钟 🕙发布时间:202探秘智能检索新境界:Agentic RAG 系统的崛起 📖阅读时长:10分钟 🕙发布时间:2025-01-15近日热文:全网最全的神经网络数学原理(代码和公式)直观解释 欢迎关注知乎和公众号的专栏内…

5、提升Java的并发性

CompletableFuture及反应式编程背后的概念 :::info ❏线程、Future以及推动Java支持更丰富的并发API的进化动力 ❏ 异步API ❏ 从“线框与管道”的角度看并发计算 ❏ 使用CompletableFuture结合器动态地连接线框❏ 构成Java 9反应式编程Flow API基础的“发布-订阅”协议❏ 反应…

goal vs objective vs target

goal 680 objective 2421 target 1284GOAL vs OBJECTIVE left 4WORD 1: GOAL 过滤200WORD W1 W2SCORED 1423 1 He has scored a further five goals in the Spanish Supercup and the Champions League.他在西班牙超级杯和冠军联赛中又打进了五个进球。 scored Barcas fourth…

大模型备案流程-简易易懂

大模型备案除了资料撰写难度高外,难点还在于各省没有统一标准。备案流程、资料要求、考察重点都会有些许差异。不过,各省的大体申报流程都如下文所示(各省主要差异点我会标出,具体内容可以一起沟通交流): 一、备案申请 报请申请者所在省份/直辖市/自治区网信:向企业注册地…

KingbaseES RAC集群案例之---jmeter压测

KingbaseES RAC、jmeter案例说明: 通过jmeter压测,测试KingbaseES RAC集群负载均衡功能。 数据库版本: test=# select version();version ---------------------KingbaseES V008R006 (1 row)测试架构:一、jmeter版本 1、系统jiava版本 [root@node203 ~]# java -version ope…

{LOJ #6041. 「雅礼集训 2017 Day7」事情的相似度 题解

\(\text{LOJ \#6041. 「雅礼集训 2017 Day7」事情的相似度 题解}\) 解法一 由 parent 树的性质得到,前缀 \(s_i,s_j\) 的最长公共后缀实质上就是 \(i,j\) 在 SAM 中的 \(\operatorname{LCA}\) 在 SAM 中的 \(\operatorname{len}\)。让我们考虑如何处理 \((l,r)\) 区间内的询问…

解决Hyper-V保留端口导致各种端口占用报错的问题

0.有时候在本地启用一个服务比如MySQL服务,或者在启用IDEA的调试的时候,或者在本地启用一个监听端口的时候可能会出现监听失败的情况,经过查找之后会发现并没有应用占用相应的端口。 1.经过查找发现其实是在启用了Hyper-V之后系统会保留一些端口,这些端口如果包含了你应用要…