这个疑问是关于underscore.js但可以用普通的javascript解决。
假设我们有一个数组
['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
根据一个参数,我想只显示数组的X个代表性元素。
例如。
Requeriments:
由于
答案 0 :(得分:2)
从你的例子的模式来看,“代表”是中间的第一个,最后一个和N-2个元素。
function representative(arr, n) {
n = Math.max(n, Math.min(arr.length, 2));
var offset = (arr.length - 1) / (n - 1);
var out = [];
for(var i = 0; i < arr.length; i += offset) out.push(arr[0|Math.round(i)]);
return out;
}
var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
console.log(representative(months, 2));
console.log(representative(months, 3));
console.log(representative(months, 4));
虽然“中间”的定义有待辩论,但似乎有效。
// output
[ 'Jan', 'Dec' ]
[ 'Jan', 'Jul', 'Dec' ]
[ 'Jan', 'May', 'Aug', 'Dec' ]