If I have an array const a = [1, 2]
and a nested array const nested = [[1,2], [2,3]]
How do I check if array a
is in the nested
?
I tried using the nested.includes(a)
, but it doesn't provide the correct output. And I was thinking stringify the array a
, but read some comments about we should not compare array using stringify.
So what is a proper way to check if an array is in another array?
includes
doesn't work correctly as it compares references - a
and nested[0]
are different in terms of references.
Take a look at following function:
function includesDeep(array, value) {
return array.some((subArray) => {
return subArray.every(
(subArrayElem, index) => subArrayElem === value[index]
);
});
}
We have to iterate over all elements of given array and check if every element of this sub array is identical to corresponding element from second array (your a
). This method detects type mismatches.
You can stringify the arrays to compare whether they are equal in the callback of Array.some
:
const a = [1, 2]
const nested = [[1,2], [2,3]]
const containsA = nested.some(e => JSON.stringify(e) == JSON.stringify(a))
console.log(containsA);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With