Q:

Array.find method skips over integers that are 0?

I've run into a problem, which seems to me like it should be fairly common, but I couldn't find the answer anywhere, stackexchange or google.
When I use the find method on an array nested in another array, the find method will never find the integer 0, no matter where it's placed. All the other numbers are found normally. 
I could fix the issue in my app by incrementing all indexes by one, but that's rather clunky, what I really want to know is why is this happening in the first place? And a way to fix it without updating all the indexes would be nice too.

const ids = [
    [0,1,2,3],
    [4,5,6,7],
    [8,9,10,11],
    [12,13,14,15],
    [16,17,18,19]
    ]


const findBlock = value => {
    return ids.find( element => { 
        return element.find(number => { 
            return number === value 
        })
    })
}
console.log(findBlock(0));

Returns undefined

A:

You need an explicit check for undefined, because Array#find returns the value or undefined.
You take a falsy value like undefined as result. But the value of 0 is a falsy value as well.
For searching an element and get only a boolean value, you could use Array#includes.

const ids = [[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11], [12, 13, 14, 15], [16, 17, 18, 19]]

const findBlock = value => ids.find(element => element.includes(value));

console.log(findBlock(0));

A:

what I really want to know is why is this happening in the first
  place?

because when inner return  returns 0, it is taken as a falsey value
Just make it
findBlock = value => {
    return ids.find( element => { 
        console.log(element);
        return element.find(number => { 
            console.log(number);
            return number === value 
        }) != -1 //observe this line
    })
}

Demo

var ids = [ [0,1,2,3], [4,5,6,7], [8,9,10,11], [12,13,14,15], [16,17,18,19] ];

var findBlock = value => {
    return ids.find( element => { 
        return element.find(number => { 
            return number === value 
        }) != -1
    })
};
console.log(findBlock(0));

