繁体   English   中英

当要排序的值是计算结果时如何在Vue中对列进行排序

[英]How to sort columns in Vue when the values to sort are the result of calculations

我找到了许多用于对已经在数组中的数据进行排序的资源,但在对动态生成的数据进行排序时却找不到任何东西。

<table>
    <thead>
      <tr>
        <th>Program</th>
        <th>Rewards</th>
      </tr>
    </thead>
    <tbody>
      <tr v-for="program in programs" :key="program.id">
        <td>{{ program.program_name }}</td>
        <td>{{ pointValue(program) | percent }}</td>
      </tr>
    </tbody>
  </table>

pointValue() 是一种计算并返回显示为 % 的值的方法。 这是奖励栏。 我希望表格可以按程序和奖励排序。 (程序只是一个字符串)。

使用mapsort方法为程序创建计算数组并对其进行迭代

computed: {
  computedPrograms() {
    return this.programs
      .map(program => {
        return {
           ...program,
           value: this.pointValue(program)
        }
      })
      .sort((a, b) => a.value - b.value)
  }
}
<tr v-for="program in computedPrograms" :key="program.id">
  <td>{{ program.program_name }}</td>
  <td>{{ program.value | percent }}</td>
</tr>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM