面试官:如何清空一个数组?

314 阅读2分钟

前言

四月份的面试历历在目......我突然顿悟面试也不错,因为你可以遇到众多优秀的面试官,还有许多你曾不屑一顾的细节,一场场面试会驱动你拾起或遗落或模糊或新鲜的知识,然后你就会复盘、思考与总结,从而壮大自己。你不知道面试官会问你什么,这很考验一个人的随机应变能力、语言组织能力以及知识储备量等。

我依稀记得有位面试官问我:如何清空数组?我当时愣住了,好一会儿才反应过来:哦,您是问如何删除一个数组吗?面试官说:嗯,对。纵然如此,我也只答出了个 arr=[]

于是,本文应运而生。

清空数组的方法

1. 赋值空数组

let arr1 = [1, 2, 3, 'a', 'b', 'c']
arr1 = []
console.log(arr1)// []

2. 令数组长度为 0

let arr2 = [1, 2, 3, 'a', 'b', 'c']
arr2.length = 0
console.log(arr2)// []

3. for 循环 + pop()

let arr3 = [1, 2, 3, 'a', 'b', 'c']
for (let i = 0; i < arr3.length; i++) {
    arr3.pop()
    i--
};
console.log(arr3);// []

4. for 循环 + shift()

let arr4 = [1, 2, 3, 'a', 'b', 'c']
for (let i = 0; i < arr4.length; i++) {
    arr4.shift()
    i--
};
console.log(arr4);// []

5. for 循环 + splice()

let arr5 = [1, 2, 3, 'a', 'b', 'c']
for (let i = 0; i < arr5.length; i++) {
    arr5.splice(0, 1)
    i--
};
console.log(arr5);// []

6. while 循环 + pop()

let arr6 = [1, 2, 3, 'a', 'b', 'c']
while (arr6.length) {
    arr6.pop()
}
console.log(arr6);// []

7. while 循环 + shift()

let arr7 = [1, 2, 3, 'a', 'b', 'c']
while (arr7.length) {
    arr7.shift()
}
console.log(arr7);// []

8. while 循环 + splice()

let arr8 = [1, 2, 3, 'a', 'b', 'c']
while (arr8.length) {
    arr8.splice(0, 1)
}
console.log(arr8);// []

9. splice()

let arr9 = [1, 2, 3, 'a', 'b', 'c']
arr9.splice(0)
// arr9.splice(0, arr9.length)
console.log(arr9);// []

结语

你看,当你细细琢磨之后,思路就明朗许多。这不就是咱们平时司空见惯的东西吗?哎,你咋就只知道 arr=[]呢?由此可见,总结至关重要,尤其是看起来很简单的问题,亦值得你去一探究竟。