Vue根据对象中的某个属性来排序对象数组入门

Posted 牛哄哄的柯南

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue根据对象中的某个属性来排序对象数组入门相关的知识,希望对你有一定的参考价值。

Vue根据对象中的某个属性来排序对象数组【入门】

排序对象

items: [
         name: '张三', age: 20 ,
         name: '李四', age: 18 ,
         name: '王五', age: 25 ,
      ]

根据age排序

要对对象数组按照其中某个属性进行排序,我们可以使用 JavaScript 的 sort() 方法,并传入一个自定义的比较函数。在这个比较函数中,我们可以指定按照哪个属性进行排序。

假设有一个对象数组 items,其中每个对象都包含一个 name 属性和一个 age 属性,我们可以使用以下代码将它们按照 age 属性进行排序:

<template>
  <div>
    <h3>排序前:</h3>
    <ul>
      <li v-for="(item, index) in items" :key="index"> item.name ( item.age 岁)</li>
    </ul>
    <h3>按年龄排序后:</h3>
    <ul>
      <li v-for="(item, index) in sortedItems" :key="index"> item.name ( item.age 岁)</li>
    </ul>
  </div>
</template>

<script>
export default 
  data() 
    return 
      items: [
         name: '张三', age: 20 ,
         name: '李四', age: 18 ,
         name: '王五', age: 25 ,
      ],
    ;
  ,
  computed: 
    sortedItems() 
      return this.items.sort((a, b) => a.age - b.age);
    ,
  ,
;
</script>

在上面的代码中,我们在组件的 data 选项中定义了一个对象数组 items,它包含了每个人的姓名和年龄。在模板中,我们使用 v-for 指令循环渲染数组中的元素。在 sortedItems 计算属性中,我们调用了数组的 sort() 方法,并传入了一个比较函数,这个比较函数会根据 age 属性进行排序。

注意,这里的比较函数要返回一个数字,表示两个对象的大小关系。如果返回值为负数,则表示第一个对象应该排在第二个对象之前;如果返回值为正数,则表示第一个对象应该排在第二个对象之后;如果返回值为零,则表示两个对象相等,不需要调换顺序。

根据name排序

如果要根据 name 属性对对象数组进行排序,只需要修改比较函数即可。以下是按照 name 属性进行排序的代码示例:

<template>
  <div>
    <h3>排序前:</h3>
    <ul>
      <li v-for="(item, index) in items" :key="index"> item.name ( item.age 岁)</li>
    </ul>
    <h3>按姓名排序后:</h3>
    <ul>
      <li v-for="(item, index) in sortedItems" :key="index"> item.name ( item.age 岁)</li>
    </ul>
  </div>
</template>

<script>
export default 
  data() 
    return 
      items: [
         name: '张三', age: 20 ,
         name: '李四', age: 18 ,
         name: '王五', age: 25 ,
      ],
    ;
  ,
  computed: 
    sortedItems() 
      return this.items.sort((a, b) => 
        if (a.name < b.name) 
          return -1;
         else if (a.name > b.name) 
          return 1;
         else 
          return 0;
        
      );
    ,
  ,
;
</script>

版权声明:
原创博主:牛哄哄的柯南
博主原文链接:https://keafmd.blog.csdn.net/
个人博客链接:https://www.keafmd.top/

看完如果对你有帮助,感谢点击下面的点赞支持!
[哈哈][抱拳]


加油!

共同努力!

Keafmd

感谢支持牛哄哄的柯南,期待你的三连+关注~~

keep accumulate for my dream【共勉】

                                                       ↓   ↓   ↓   ↓   ↓   ↓  

以上是关于Vue根据对象中的某个属性来排序对象数组入门的主要内容,如果未能解决你的问题,请参考以下文章

Vue.js - 如何按特定属性对数组中的对象进行排序并使用“v-for”进行渲染

vue数组和对象响应式杂谈

VUE关于data对象中数组修改和对象添加属性的响应式问题

vue遍历对象 并把对象中某个数据相加

Vue 计算属性改变存储状态

js对象数组按照另一个数组排序