我有以下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()
})
},
答案 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 })