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