首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Vue.js中排序数组

在Vue.js中排序数组
EN

Stack Overflow用户
提问于 2017-03-19 06:59:56
回答 5查看 129.6K关注 0票数 57

在v-for循环中显示数组之前,如何按名称或性别对数组进行排序?https://jsfiddle.net/rg50h7hx/

代码语言:javascript
复制
<div id="string">
  <ul>
    <li v-for="array in arrays">{{ array.name }}</li>
  </ul>
</div>
代码语言:javascript
复制
// Vue.js v. 2.1.8
var string = new Vue({
  el: '#string',
  data: {
    arrays: [
      { name: 'kano',    sex: 'man' },
      { name: 'striker', sex: 'man' },
      { name: 'sonya',   sex: 'woman' },
      { name: 'sindell', sex: 'woman' },
      { name: 'subzero', sex: 'man' }
    ]
  }
})

我是不是要用“计算”之类的?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2017-03-19 07:48:30

是的,一种简单的方法是创建一个可以返回sortedArray的计算属性,如下所示:

代码语言:javascript
复制
computed: {
  sortedArray: function() {
    function compare(a, b) {
      if (a.name < b.name)
        return -1;
      if (a.name > b.name)
        return 1;
      return 0;
    }

    return this.arrays.sort(compare);
  }
}

参见正在工作的演示

您可以找到排序这里的文档,其中包含一个compareFunction。

compareFunction指定定义排序顺序的函数。如果省略,则根据每个字符的Unicode代码点值以及每个元素的字符串转换对数组进行排序。

票数 80
EN

Stack Overflow用户

发布于 2017-09-30 23:27:03

使用箭头函数es6:

代码语言:javascript
复制
sortedArray(){
    return this.arrays.sort((a, b) => a.name - b.name );
}
票数 31
EN

Stack Overflow用户

发布于 2018-04-23 14:34:00

Html端

代码语言:javascript
复制
<div id="string">
      <ul>
        <li v-for="array in sortArrays(arrays)">{{ array.name }}</li>
      </ul>
    </div>

使用Lodash编写的Vue js代码

代码语言:javascript
复制
var string = new Vue({
  el: '#string',
  data: {
    arrays: [
      { name: 'kano',    sex: 'man' },
      { name: 'striker', sex: 'man' },
      { name: 'sonya',   sex: 'woman' },
      { name: 'sindell', sex: 'woman' },
      { name: 'subzero', sex: 'man' }
    ]
  },
  methods: {
     sortArrays(arrays) {
            return _.orderBy(arrays, 'name', 'asc');
        }
  }
})
  • 在orderBy函数中,第一个参数是数组,第二个参数是键(名称/性别),第三个参数是顺序(asc / desc)。
票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42883835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档