Javascript 读取React中的对象数组将返回一个对象

Javascript 读取React中的对象数组将返回一个对象,javascript,reactjs,Javascript,Reactjs,其中有一个books.js文件,其中包含一组对象,这些对象被导出,然后导入到components/BookList.js中。我假设书籍将按原样导入(对象数组),但它实际上是一个对象。因此,作者使用constbooklist=Object.values(books)获得一个数组,该数组可以使用map进行迭代 为什么导入后books不是数组?books.js的内容、它在BookList.js中导入的方式,或者它的本意是否有问题?而不是执行const BookList=Object.values(bo

其中有一个
books.js
文件,其中包含一组对象,这些对象被导出,然后导入到
components/BookList.js
中。我假设
书籍
将按原样导入(对象数组),但它实际上是一个对象。因此,作者使用
constbooklist=Object.values(books)
获得一个数组,该数组可以使用
map
进行迭代


为什么导入后
books
不是数组?
books.js
的内容、它在
BookList.js
中导入的方式,或者它的本意是否有问题?

而不是执行
const BookList=Object.values(books)
并使用
.map()
迭代
bookList
,您应该执行
books.map()

这是一个数组,这就是您使用的codesandbox使其看起来像对象的方式

import React from "react";
import Book from "./Book";
import { books } from "../books";

const BookList = () => {
  return (
    <section>
      {books.map((book) => (
        <article key={`${book.title}.toLowerCase().split(" ").join("-")}`}>
          <Book
            title={book.title}
            author={book.author}
            image={book.imageLink}
            altText={book.title}
          />
        </article>
      ))}
    </section>
  );
};

export default BookList;
从“React”导入React;
从“/Book”导入图书;
从“./books”导入{books};
常量BookList=()=>{
返回(
{books.map((book)=>(
))}
);
};
导出默认书目;

它将作为对象数组导入<代码>对象。值(书籍)将为您提供相同的数组。根本不需要。在本例中,不需要使用
Object.values
。谢谢!我也很惊讶地看到了这一点,所以我放了一个console.log来查看类型,我相信我看到的是一个对象而不是数组。