How do I correctly find a value in an object from an array, by matching it to another array with the values

So I have an array of values which I need to find:

const values = [ 'v4', 'w1']

And there is the array of objects where I need to look into:

const nodes = [
    {
        "node": {
            "options": [
                {
                    "name": "Key1",
                    "value": "v1"
                },
                {
                    "name": "Key2",
                    "value": "w1"
                }
            ]
        }
    },
    {
        "node": {
            "options": [
                {
                    "name": "Key1",
                    "value": "v1"
                },
                {
                    "name": "Key2",
                    "value": "w2"
                }
            ]
        }
    },
    {
        "node": {
            "options": [
                {
                    "name": "Key1",
                    "value": "v2"
                },
                {
                    "name": "Key2",
                    "value": "w1"
                }
            ]
        }
    },
    {
        "node": {
            "options": [
                {
                    "name": "Key1",
                    "value": "v2"
                },
                {
                    "name": "Key2",
                    "value": "w2"
                }
            ]
        }
    },
    {
        "node": {
            "options": [
                {
                    "name": "Key1",
                    "value": "v3"
                },
                {
                    "name": "Key2",
                    "value": "w1"
                }
            ]
        }
    },
    {
        "node": {
            "options": [
                {
                    "name": "Key1",
                    "value": "v3"
                },
                {
                    "name": "Key2",
                    "value": "w2"
                }
            ]
        }
    },
    {
        "node": {
            "options": [
                {
                    "name": "Key1",
                    "value": "v4"
                },
                {
                    "name": "Key2",
                    "value": "w1"
                }
            ]
        }
    },
    {
        "node": {
            "options": [
                {
                    "name": "Key1",
                    "value": "v4"
                },
                {
                    "name": "Key2",
                    "value": "w2"
                }
            ]
        }
    },
    {
        "node": {
            "options": [
                {
                    "name": "Key1",
                    "value": "v5"
                },
                {
                    "name": "Key2",
                    "value": "w1"
                }
            ]
        }
    },
    {
        "node": {
            "options": [
                {
                    "name": "Key1",
                    "value": "v5"
                },
                {
                    "name": "Key2",
                    "value": "w2"
                }
            ]
        }
    }
]

And I basically need to find which is the node that matches the values array (in this example, the result should be nodes[6]

{
        "node": {
            "options": [
                {
                    "name": "Key1",
                    "value": "v4"
                },
                {
                    "name": "Key2",
                    "value": "w1"
                }
            ]
        }
    },

values array will always have the length of node.options, but one of the values can be undefined in which case the first occurrence of the defined value should be returned.

e.g. values = [ undefined, 'w1'] -> nodes[0]

I managed to do something like

const result = nodes.find(
        (node) =>
          options[0].value === values[0] &&
          options[1].value === values[1]
      );

But his won’t work if options has length different than 2.

Some other things I tried: (but seem to no be working)

nodes.find((node) => node.options.find(item => {
        values.map(opt => opt === item.value)
      }))

nodes.find((node) => node.options.filter(item => {
    return values.includes(item.value)
  }))