0

私は次元としてdate_valueを持つcrossfilterオブジェクトを持っています。クロスフィルターを使用して降下を注文するにはどうすればよいですか?

$scope.x = cf.dimension(function (d) {return moment(d.date_value).format('L');}); 

次のクロスフィルタ機能を適用します。

$scope.y = $scope.x.group().reduce(add, remove, init); 

$ scope.yからボトム7のレコードを取得する必要がありますが、この機能はもうオプションとして表示されません。私はトップ(7)だけ行うことができます。私は降順をしてからトップ(7)をつかむことができると思っていた。降順をどうすればいいですか?

+0

あなたは() '配列' $のscope.x.groupの最後の7つの要素を取得しようとしていますか? – guest271314

+0

はい、私は最初にreduceを適用する必要があります。 –

+0

クロスフィルタグループは、通常、 'top'を呼び出すときにキーではなく値によってソートされます。最小のグループを常に最初にしたい場合は、グループの順序を切り替えることができます。あるいは、下記のようにして 'group.top(Infinity).slice(-7)'を使うこともできます。 IIRCキーでグループを注文するオプションはありません。 –

答えて

0

.slice() をパラメータ-7と呼び出すと、元の配列の最後の7つのインデックスを含む新しい配列を作成できます。

let arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]; 
 
let lastSeven = arr.slice(-7); 
 
console.log(lastSeven);

+0

ありがとう!それはうまくいった! –

関連する問題