Search an element in an array component of a json file using JS

I am running this code snipped in React to search if there is a match with the user’s input. The json file goes as follows:

{
  "first":{
    "name": "Michael Jordan",
    "id": "mj"
    "image": ".../icon.png",
    "tags": [
      "Sportsman",
      "Tall",
      "Famous",
      "something",
      "etc"
    ]
  },
  "second":{
    "name": "Paul White",
    "id": "pw"
    "image": ".../icon.png",
    "tags": [
      "Engineer",
      "Small",
      "Famous",
      "Another characteristic",
      "likes apples"
      "something",
      "etc2"
    ]
  }
}

and here is the search function I made to search through all the names and tags if there is a matching “person”, and afterwards display all the “people” that share the same tags or names

function main_char_search(searchProp) {
    const tagssearch = searchProp[0].tags && Object.keys(searchProp[0].tags);
    return searchProp.filter(
      (new_items) => new_items.name.toLowerCase().indexOf(q) > -1 ||
      tagssearch.some((tagsearch)=>new_items[tagsearch].toString().toLowerCase().indexOf(q)) > -1
    );
  }

the trick is that the array that contains the tags varies in size sometimes.
Here is the errors that this code generates:
TypeError cannot read properties of undefined (reading ‘tags’)
Uncaught (in … promise)

Note: the code runs perfectly if I try to search through the names and other individual components.