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/

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

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

共同努力!

Keafmd

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

keep accumulate for my dream【共勉】

                                                       ↓   ↓   ↓   ↓   ↓   ↓  文章来源地址https://www.toymoban.com/news/detail-489607.html

到了这里,关于Vue根据对象中的某个属性来排序对象数组【入门】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包