区分javascript数组中未找到的元素和索引为-1的元素

distinguish between not found element and the one with index -1 in javascript array

本文关键字:元素 索引 数组 javascript 区分      更新时间:2023-09-26

查找数组中元素的常用方法是使用array的indexOf()方法。当元素的索引为负时,即-1,就会出现这个问题。检查这个场景:

var arr = [];
arr[-1] = '2';
console.log(arr.indexOf('2')); // -1
console.log(arr.indexOf('unknown')); //-1

基本上,我可以实现一个解决方案来区分不存在的元素和一个索引-1(重复类似的逻辑在indexOf和返回NaN时,元素找不到),但只是好奇-是不是有现有的实现解决上面的问题?

数组不能有负下标。当你执行arr[-1] = '2'时,你设置的是数组对象的"-1"属性。

当您执行arr.indexOf('2');时,它实际上没有找到任何内容,因此返回-1表示"未找到元素",而不是"在索引-1处找到"。证明:

var arr = [];
arr[-2] = '2';
console.log(arr.indexOf('2')); // -1