在Array中查找已删除的元素

时间:2014-10-06 07:21:58

标签: javascript

我需要找到数组中第一个可用的已删除插槽

这有效:

var A = [1,2]
A[0] = undefined
console.log(A.indexOf(undefined))

但是这个怎么样?:

var A = [1,2]
delete A[0]
console.log(A)
console.log(A.indexOf(null)) ???

1 个答案:

答案 0 :(得分:2)

遍历数组,寻找不存在的密钥。

function find_first_empty_slot(arr) {
    for (var i = 0; i < arr.length; i++) {
        if (!(i in arr)) { return i; }
    }
    return -1;
 }

您无法使用indexOf找到这些内容,因为它不会查找缺少的元素。您也可以不使用Array#forEach等,因为它们会跳过缺少的元素。