Ronald Langeveld
Ronald Langeveld

Reputation: 744

findIndex keeps on returning -1 from json

I'm passing a some context data from redux state (using hooks) to my current component. I need to find only a specific value from redux state and put in the local, component's state.

I'm using findIndex for that.

Although, based on my console.log's it should find a match, it's still returning -1 constantly.

I've been browsing stackoverflow and googling for hours and tried every example + tried to manipulate it, but no luck.

The state (list) state from Redux,

[
      {
        userId: 2,
        id: 11,
        title: 'et ea vero quia laudantium autem',
        body: 'delectus reiciendis molestiae occaecati non minima eveniet qui voluptatibus\naccusamus in eum beatae sit\nvel qui neque voluptates ut commodi qui incidunt\nut animi commodi'
      },
      {
        userId: 2,
        id: 12,
        title: 'in quibusdam tempore odit est dolorem',
        body: 'itaque id aut magnam\npraesentium quia et ea odit et ea voluptas et\nsapiente quia nihil amet occaecati quia id voluptatem\nincidunt ea est distinctio odio'
      },
      {
        userId: 2,
        id: 13,
        title: 'dolorum ut in voluptas mollitia et saepe quo animi',
        body: 'aut dicta possimus sint mollitia voluptas commodi quo doloremque\niste corrupti reiciendis voluptatem eius rerum\nsit cumque quod eligendi laborum minima\nperferendis recusandae assumenda consectetur porro architecto ipsum ipsam'
      },
      {
        userId: 2,
        id: 14,
        title: 'voluptatem eligendi optio',
        body: 'fuga et accusamus dolorum perferendis illo voluptas\nnon doloremque neque facere\nad qui dolorum molestiae beatae\nsed aut voluptas totam sit illum'
      },
      {
        userId: 2,
        id: 15,
        title: 'eveniet quod temporibus',
        body: 'reprehenderit quos placeat\nvelit minima officia dolores impedit repudiandae molestiae nam\nvoluptas recusandae quis delectus\nofficiis harum fugiat vitae'
      },
      {
        userId: 2,
        id: 16,
        title: 'sint suscipit perspiciatis velit dolorum rerum ipsa laboriosam odio',
        body: 'suscipit nam nisi quo aperiam aut\nasperiores eos fugit maiores voluptatibus quia\nvoluptatem quis ullam qui in alias quia est\nconsequatur magni mollitia accusamus ea nisi voluptate dicta'
      },
      {
        userId: 2,
        id: 17,
        title: 'fugit voluptas sed molestias voluptatem provident',
        body: 'eos voluptas et aut odit natus earum\naspernatur fuga molestiae ullam\ndeserunt ratione qui eos\nqui nihil ratione nemo velit ut aut id quo'
      },
      {
        userId: 2,
        id: 18,
        title: 'voluptate et itaque vero tempora molestiae',
        body: 'eveniet quo quis\nlaborum totam consequatur non dolor\nut et est repudiandae\nest voluptatem vel debitis et magnam'
      },
      {
        userId: 2,
        id: 19,
        title: 'adipisci placeat illum aut reiciendis qui',
        body: 'illum quis cupiditate provident sit magnam\nea sed aut omnis\nveniam maiores ullam consequatur atque\nadipisci quo iste expedita sit quos voluptas'
      },
      {
        userId: 2,
        id: 20,
        title: 'doloribus ad provident suscipit at',
        body: 'qui consequuntur ducimus possimus quisquam amet similique\nsuscipit porro ipsam amet\neos veritatis officiis exercitationem vel fugit aut necessitatibus totam\nomnis rerum consequatur expedita quidem cumque explicabo'
      }
    ]
useEffect(() => {

if(list){
  let allSectionsCopy = JSON.parse(JSON.stringify(list));
  console.log(allSectionsCopy); // outputs the above array

  let sectionIndex = allSectionsCopy.findIndex(
   item => item.id === param.id
);

console.log(param.id) //returns 16 (because my react route is /dashboard/16 )

console.log(sectionIndex) // this returns -1 

// let sectionToUpdate = allSectionsCopy[sectionIndex];

// setPage(sectionToUpdate) 

}
}, [state]);

Index is returning -1 instead of 5

Any help would be appreciated.

Thanks in advance

Here's a screenshot of my console. The 16 on the top line is my param id, followed by the list, and then the index, which returns -1 instead of 5

Upvotes: 1

Views: 42

Answers (1)

Mike Feltman
Mike Feltman

Reputation: 5176

Looks like param.id is a string and your index is an integer.

Upvotes: 3

Related Questions