Since you look for Title as first value, why not use it in the query?
Use combination contains() and regex /^Title$/ to make exact match.
const values = ['Title', 'Value1', 'Value2', 'Value3']
cy.contains('button rows span', /^Title$/)
.parents('button')
.find('span')
.each(($span,i) => {
cy.wrap($span).invoke('text').should('eq', values[i])
})