2015-09-01 5 views
0

У меня есть массив из 50 элементов, каждый из которых имеет некоторый тип записи. Мне нужно отфильтровать элементы аналогичного типа записи с помощью jquery. Как я это сделаю.Группа по элементам массива на основе определенных критериев из массива

Пожалуйста, помогите

+0

может включать в себя пример массива, _ «тип записи» _ в вопросе? – guest271314

ответ

0

Разделить подобные элементы простого свойства можно использовать Bucket sort:

//Elements to divide into buckets according to their foo value: 
var elems = [ 
    {foo: 1, bar: 23} 
, {foo: 2, bar: 24} 
, {foo: 1, bar: 25} 
, {foo: 2, bar: 26} 
, {foo: 2, bar: 27} 
, {foo: 3, bar: 29} 
]; 
//Sorting elements into buckets depending on foo: 
var buckets = {}; 
for(var i = 0; i < elems.length; i++){ 
    var elem = elems[i]; 
    if(elem.foo in buckets){ 
    buckets[elem.foo].push(elem); 
    }else{ 
    buckets[elem.foo] = [elem]; 
    } 
} 
//Iterating buckets to display output: 
var keys = Object.keys(buckets); 
for(var i = 0; i < keys.length; i++){ 
    var key = keys[i]; 
    console.log(key+' => '+JSON.stringify(buckets[key])); 
} 

Это будет производить следующий вывод:

1 => [{"foo":1,"bar":23},{"foo":1,"bar":25}] 
2 => [{"foo":2,"bar":24},{"foo":2,"bar":26},{"foo":2,"bar":27}] 
3 => [{"foo":3,"bar":29}] 
Смежные вопросы