2017-06-12 8 views
0

アルファベット順に出力を並べ替えるために、次のVueメソッドをJS .sort()に追加する必要があります。私が最初にJS後方の学習フレームワークを学んだと私はJS-賢明この作業をする必要があるかを理解するのに苦労しています:あなたはフィルターをソートする必要があるJS .sortをVueメソッドに追加する方法

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

Javascriptの値、関数、および配列の基礎を学ぶ必要があります。 – SLaks

+0

@SLaks私はそれに取り組むことに同意します。フレームワーク/図書館はもっと理にかなっており、私は自分の仕事のためにそれらを知る必要があったので、少し後ろで学んだ。 – Auzy

答えて

1

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

は、どういうわけか私はこのようなものが必要配列:MDN Documentation for Array.prototype.sort()から

filteredByCat (cat) { 
    return this.businesses.filter((element) => { 
    return (element.cat === cat.name); 
    }).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; 
    } 
    }); 
}, 
0

ソート機能は、コールバックを必要としlike

.sort(function(a,b) { return a-b }) 
+0

いいえ、コールバックパラメータはオプションです。デフォルトで 'sort()'メソッドは値をアルファベット順と昇順で文字列としてソートします。コンソールで '' "B"、 "A"、 "D"、 "C"。sort() 'を試してみてください。 – thanksd

+0

これは分かっていませんでした。ありがとう – John

関連する問題