{{ 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)
}
}
}
})