html搜索数组,[面试官系列]数组中查找元素下标

a313c4b22b812c59dc23494d774e3d2a.png

面试题1:如何在数组中查找元素的下标。API 和其他实现方案都可以。

答案1:面试题不难吧?基本上我面试过的人,都能说上来用 indexOf 实现,但是我这种魔鬼还会追问的。

我先来介绍一下 indexOf 的入参

Array.prototype.indexOf(查找的元素,开始查找的位置)

再来说一下 indexOf 的返回值。返回值为数值类型,返回值为查找到的元素的下标,如果没找到返回-1。(前两天有个前端实习生来面试,其实给我的感觉还不错,说的基本上很清晰,但是有一些核心点在说的时候没说出来。我就让他用代码实现一下功能,然后就发现了问题,indexOf使用的不对,他说返回值是 Boolean。然后应该是凉了,因为还有其他错误。)

面试题1追问1:返回值类型

面试题1追问2:如何判断等于?是==?还是===?

[1,'1'].indexOf(1);

indexOf 使用strict equality (无论是 ===, 还是 triple-equals操作符都基于同样的方法)进行判断 searchElement与数组中包含的元素之间的关系。

面试题1追问3:有没有找不到的值类型?对象?

这里要说一下,对象是可以比对的,我这里只是一个迷惑项。真实想考察的是NaN,前面说过了因为逻辑和===是一样的。那么NaN是唯一一个自己不等于自己的。所以如果有NaN会查找不到。

[1,'1',NaN].indexOf(NaN);

面试题1追问4:还有其他方案吗?

1. find

2. findIndex

3. filter、map、forEach、every、some、for循环

4. includes

这里基本上就是继续重复上面的问题了。

面试题1追问5:刚才问题的查找元素下标。现在我想查找符合条件的元素下标值怎么办?

答案当然是 findIndex 咯。当然这里基本上也会出现一波用循环去解决的。基本上也会让用代码去实现。

好了。今天的面试题分析就到这里了。下面我们来总结一下。

常见API的入参以及返回值

所选择方案是否适配全类型(基本类型、对象、NaN)

所选择方案是否存在类型转换?

是否有其他解决方案?

近似问题、比如说从固定值变为条件?高阶函数?递归?如果前面对了,后面基本就是加分项了。

微信公众号:前端linong

b739ec46bb5c46d9c0aa4ce35ba1ea56.png

关于找一找教程网

本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。

本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。

[[面试官系列]数组中查找元素下标]http://www.zyiz.net/tech/detail-122729.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值