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

时间:2014-05-26 15:43:03

标签: javascript

在数组中查找元素的常用方法是使用Array的indexOf()方法。当存在具有负索引的元素时,即出现问题,即-1。检查这种情况:

var arr = [];
arr[-1] = '2';

console.log(arr.indexOf('2')); // -1
console.log(arr.indexOf('unknown')); //-1

基本上,我可以实现一种解决方法,以区分非现有元素和索引为-1的元素(重复类似于indexOf中的逻辑,并在无法找到元素时返回NaN),但只是好奇 - 不是'有解决上述问题的现有实施吗?

1 个答案:

答案 0 :(得分:3)

阵列不能有负面指数。当您执行arr[-1] = '2'时,您需要设置" -1"而是数组对象的属性。

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

var arr = [];
arr[-2] = '2';

console.log(arr.indexOf('2')); // -1