ItIron2021
Javascript
昨天我们开始了新的系列,剩下这几天也会以这类型的题目进行!当时这些题目是在模拟面试活动的最後一周跑的,除了练习应用题之外,最主要的目的是让参与的同学了解提问的重要性以及一些技巧,解题的部份反而变少,把重点放在两方交流的过程中,希望不管是面对白板题或是面试时随口抛出的问题也能有一套处理的逻辑,让回答的过程可以更从容一些!
请写一个duplicate函数,达成以下的输出结果
console.log(duplicate([1, 2, 3, 4, 5]))
// 输出结果
[1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
防雷防雷,听说你传说很雷
从昨天的教训我们知道,首先你要先厘清问题,那我这边就帮你省点麻烦吧!
了解这些候你就可以开始动手了,其实你应该也意识到这在考的是你要如何复制一个阵列,只要复制後再与原阵列相连接不就行了? 以下是几种常见的做法
经典不败老招,想不出该怎麽做用回圈就对了。
function duplicate(arr) {
const result = [...arr]
for (let i = 0; i < arr.length; i++) {
result.push(arr[i])
}
return result
}
function duplicate(arr) {
return [...arr, ...arr]
}
最後就是原生的阵列连接的方法,配合apply来使用就更方便了!
function duplicate(arr) {
return [].concat.apply(arr, arr)
}
当然还有许多其他的方法,不过解决同一个问题我认为提个2~3招就差不多了,当你脑中已经有复数个思路时,建议不要直接将你认为的最佳解丢给对方(除非是笔试),而是先从基础的作法开始回答,这样当面试官问你还有没有其他方法时你才不至於词穷?
今天的题目就到这边为止,是不是特别轻松简单呢!
阵列浅拷贝、apply
本文章同步发布於个人部落格,有兴趣的朋友也可以来逛逛~!
<<: 【Day30】[演算法]-线性搜寻法Linear Search
>>: [Day26] Vue3 E2E Testing: Cypress 实战之 Todo MVC (中)
零信任是一种网络安全范式,用於支持可见性的细粒度,动态和以数据为中心的访问控制。 (访问控制基於需要...
安装 https://git-lfs.github.com/ $ git lfs install $...
前言 进度已经超过一半,发现架构有点混乱,所以现在先整理一下,学会到什麽,以及怎麽运用,未来会怎样前...
Stack(堆叠)是一种後进先出(LIFO)的资料结构 看一下图 注:图源 你可以想像一下在厨房洗碗...
堆积排序法(Heap Sort)原理是利用「堆积」的资料结构为基础来完成排序。 堆积的介绍可以参考此...