Search code examples
javascriptarraysreactjsobjectarray-push

Trying to make an array out of an object entries using 'push' to an empty array. Simply won't work


I have this function on a React component, that fetches data from a AWS API and returns it on an Object.

I tried transforming the data received in the object in an array.

The function that fetches the data is listUsers.

Then i used the push method. But it doesn't matter what i do, if i log the typeof either from data or array it continues returning an object.

Here's the full code:

import { Auth, API } from 'aws-amplify'
import { useState, useEffect } from 'react'

export default function Users() {
    const listUsers = async () => {
    const apiName = 'AdminQueries'
    const path = '/listUsers'
    const params = {
      headers: {
        'Content-Type': 'application/json',
        Authorization: `${(await Auth.currentSession())
          .getAccessToken()
          .getJwtToken()}`,
      },
    }
    return await API.get(apiName, path, params)
  }

  const usersArray = async () => {
    const response = await listUsers()

    var array = []

    for (const item of response.Users) {
      array.push(item)
    }

    setData(array)
    console.log(array)
    console.log(typeof array)
  }

  useEffect(() => usersArray(), [])

  return <></>
}

And the thing is that i NEED IT to become an array, cause i need to use Map to make the component render the data the way i want.

Any tips?


Solution

  • Nearly everything in JavaScript is an object.

    Only — null , undefined , strings, numbers, boolean, and symbols are not objects.