当前位置: 首页 > 面试题库 >

在React中对对象数组进行排序并渲染它们

凌琦
2023-03-14
问题内容

我有一个包含一些信息的对象数组。我无法按照我想要的顺序进行渲染,因此我需要一些帮助。我这样渲染它们:

this.state.data.map(
    (item, i) => <div key={i}> {item.matchID} {item.timeM} {item.description}</div>
)

是否可以item.timeM在该map()功能中对它们进行升序排序,或者我必须在使用map之前对它们进行排序?


问题答案:

这可能是您要寻找的:

// ... rest of code

// copy your state.data to a new array and sort it by itemM in ascending order
// and then map 
const myData = [].concat(this.state.data)
    .sort((a, b) => a.itemM > b.itemM ? 1 : -1)
    .map((item, i) => 
        <div key={i}> {item.matchID} {item.timeM}{item.description}</div>
    );

// render your data here...

该方法sort
将变异原始数组。因此,我使用该concat方法创建了一个新数组。字段itemM上的排序应适用于可排序的实体,例如字符串和数字。



 类似资料:
  • 问题内容: 你能告诉我如何在react js中渲染列表吗?我喜欢这样 问题答案: 您可以通过两种方式进行操作: 第一: 第二: 直接在返回中编写map函数

  • 问题内容: 我有一些称为站的数据,它是一个包含对象的数组。 我想为每个数组位置渲染一个ui组件。到目前为止,我可以写 然后渲染 问题是我要打印所有数据。相反,我只想显示一个像这样的键,但是什么也不打印。 如何遍历此数据并为数组的每个位置返回一个新的UI元素? 问题答案: 您可以将工作站列表映射到ReactElements。 使用React> = 16时,可以从同一组件返回多个元素,而无需额外的ht

  • 问题内容: 我映射了多个对象。 我如何嵌套一个循环,以便首先遍历对象,然后遍历(在此示例中)城市?谢谢! 我的没有嵌套外观的渲染函数如下所示: 城市对象示例: 问题答案: 您可以使用嵌套映射来映射内部子对象以及

  • 问题内容: 我试图通过对象属性(此示例的名称)并在函数的轻松循环中列出它们。我发现这样做有些尴尬,但这似乎不正确。 这是我得到的: 有一个更好的方法吗?我只需要一个循环即可遍历对象数组,列出所需的属性并创建许多html节点之一。 问题答案: 您可以简单地在数组上 映射

  • 问题内容: 我的数组不包含任何字符串。但是它包含对象引用。每个对象引用都通过toString方法返回名称,id,作者和发布者。 现在,我需要按名称对对象数组进行排序。我知道如何排序,但是我不知道如何从对象中提取名称并对它们进行排序。 问题答案: 你有两种方法可以使用Arrays实用程序类 实现一个Comparator并将数组与比较器一起传递给sort方法,该方法将其作为第二个参数。 在对象所属的类

  • 问题内容: 我有一个带有以下渲染的组件: policyLegend是一个对象数组,每个对象内都有一个“值”数组。 构建应用程序时,我没有收到任何错误,但是在组件页面上没有任何显示。我不确定我要去哪里错,请多多指教,谢谢。 问题答案: 这是因为您没有在policyLegend映射内返回任何内容。试试这个: