Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Выборка из массива (https://javascript.ru/forum/misc/27924-vyborka-iz-massiva.html)

Sergey999 29.04.2012 20:29

Выборка из массива
 
Можно ли какими-то стандартными способами или как можно более лаконичными сделать из массива выборку 15 элементов, например:

1. Array(30) - выбираем каждый второй
2. Array(75) - выбираем 2,5,7,10 и т.п.

То есть нужно выбрать эдакие средние значения равномерно по всему масиву учитывая что сам он может быть любой длинны и 50 и 150 элементов, на как это красиво сделать и лаконично...?

Gvozd 29.04.2012 21:21

array = [1,2,3,4,5,6];
length = 2;
arr = array.reduce(function(arr, el, index, array){
    var count = array.length/length;
    index++;
    if(index - count*~~(index/count) < 1) {
        arr.push(el);
    }
    return arr;
}, []);
console.log(arr);

Pavel M. 30.04.2012 10:30

Gvozd,
может быть здесь вместо reduce уместнее filter ?
var array = [1,2,3,4,5,6],
  length = 2;
  arr = array.filter(function (el, index, arr) {
    var count = arr.length/length;
    index++;
    return index - count * ~~(index/count) < 1;
  });
alert(arr);

Gvozd 30.04.2012 10:59

Pavel M.,
да, уместнее


Часовой пояс GMT +3, время: 01:13.