尝试使用 'push' 将对象条目创建为空数组的数组。根本行不通

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

我在 React 组件上有这个功能,它从 AWS API 和对象上 returns 获取数据。

我尝试将对象中接收到的数据转换为数组。

获取数据的函数是listUsers

然后我使用了push方法。但不管我做什么,如果我从 dataarray 记录 typeof 它会继续返回一个对象。

完整代码如下:

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 <></>
}

问题是我需要它成为一个数组,因为我需要使用 Map 使组件以我想要的方式呈现数据。

有什么建议吗?

JavaScript 中几乎所有东西都是对象。

只有 - nullundefinedstringsnumbersbooleansymbols 不是对象。

你检查错了。你应该使用array instance of Array来确认它是否是一个数组类型。