{{ arr | max }}
{{ arr | max(2) }}
<div id="app"> <p>{{ arr | max }}</p> <p>{{ arr | max(2) }}</p> </div>
new Vue({ el: '#app', data: { arr: [1, 3, 5, 2, 4] }, filters: { max(arr, n) { if (arr.length < n) { throw new Error('Vue.js filter maxの引数が多すぎます') return } else if (n > 1) { let result = [] while(result.length < n) { let max = Math.max(...arr) if (~result.indexOf(max)) continue result.push(max) arr = arr.filter(v => v !== max) } return result } else { return Math.max(...arr) } } } })