面试题1:如何查找数组中元素的下标。API和其他实现都很好。答1:面试题不难吧?基本上我面试过的人都说可以用indexOf来实现,但是像我这样的鬼还是会问。先介绍一下indexOf的入参Array.prototype.indexOf(要查找的元素,开始查找的位置),然后说说indexOf的返回值。返回值为数值类型,返回值为找到的元素的下标,没有找到则为-1。(前两天来面试一个前端实习生,其实给我的感觉还不错,我说的基本都说的很清楚了,但是有一些核心点我说的时候没有说出来,我请他用代码实现功能,然后发现问题,indexOf没有正确使用,他说返回值是Boolean。那应该是冷的,因为还有其他错误。)面试问题1follow-up问题1:返回值类型面试题1followingquestion2:如何判断等于?是==?还是===?[1,'1'].indexOf(1);indexOf使用严格相等(无论是===,还是三等号运算符都是基于相同的方法)来判断searchElement与数组中包含的元素之间的关系。面试题1跟题3:有没有找不到的值类型?目的?这里我想说的是对象是可以比较的,我这里只是一个混淆项。我真正要检查的是NaN,正如我之前所说,因为逻辑与===相同。那么NaN是唯一不等于自身的。所以如果有NaN,就找不到了。[1,'1',NaN].indexOf(NaN);面试问题1问题4:还有其他解决办法吗?1.find2.findIndex3.filter,map,forEach,every,some,forloop4.includes这里基本上就是继续重复上面的问题。面试题1跟题5:刚才那题的搜索元素下标。现在我想找到满足条件的元素的下标值,怎么办?答案当然是findIndex咯。当然这里基本都会有一波循环来解决。基本上,它会用代码来实现。好吧。今天的面试题解析就到这里了。让我们在下面总结一下。常用API输入参数和返回值所选方案是否适用于所有类型(基本类型、对象、NaN)所选方案是否有类型转换?还有其他解决方案吗?近似问题,说从定值到条件?高阶函数?递归?如果前面是对的,后面基本上是加分项。微信公众号:前端立农
