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