如何将JS .sort添加到Vue方法

时间:2017-06-12 19:13:19

标签: javascript vue.js vuejs2

我有以下Vue方法,我需要添加JS .sort()以便按字母顺序排序输出。我首先学习了JS后向学习框架,并且正在努力理解我需要如何使这个工作JS明智:

filteredByCat (cat) {
  return this.businesses.filter((element) => {
    return element.cat === cat.name
  })
},

不知怎的,我需要这样的东西:

filteredByCat (cat) {
  return this.businesses.filter((element) => {
    return (element.cat === cat.name).sort()
  })
},

2 个答案:

答案 0 :(得分:1)

您需要对已过滤的数组进行排序:

filteredByCat (cat) {
  return this.businesses.filter((element) => {
    return (element.cat === cat.name);
  }).sort();
},

来自MDN Documentation for Array.prototype.sort()

  

默认排序顺序是根据字符串Unicode代码点。

这意味着上面的示例将按字母顺序和升序将过滤的businesses数组排序为字符串。

如果需要按属性(例如name)对对象数组进行排序,则需要提供回调函数作为提供排序逻辑的参数:

filteredByCat (cat) {
  return this.businesses.filter((element) => {
    return (element.cat === cat.name);
  }).sort((a, b) => { // based off an example in the MDN Documentation for .sort()
    var nameA = a.name.toUpperCase(); 
    var nameB = b.name.toUpperCase(); 
    if (nameA < nameB) {
      return -1;
    } else if (nameA > nameB) {
      return 1;
    } else {
      return 0;
    }
  });
},

答案 1 :(得分:0)

sort函数需要像

这样的回调
.sort(function(a,b) { return a-b })