2013-12-10 1 views
0

Я объявил мой массив как var arrTest=[];Получение Minimum из массива с несколькими объектами в Jquery

и я, добавив некоторую информацию к нему и ниже arrTest содержание

[Object { minutes=78, start="some address1", end="end address2"}, Object { minutes=54, start="some address3", end="some address4"}, Object { minutes=21, start="some address5", end="some address6"}] 

Теперь то, что я должен сделать, чтобы выберите информацию с МИНИМАЛЬНЫМИ минутами, т.е. minutes=21, start="some address5", end="some address6" С JQuery.

Любое руководство будет высоко оценен ..

благодаря

+1

Должно ли это явно быть в JQuery? Насколько я понимаю, JQuery на самом деле не поможет вам сделать это. –

ответ

0

Вы можете сделать свою собственную функцию, которая будет возвращать минимум массив из ключа. Нет никакого способа использовать jQuery.

function getMin(arr, key) { 
    // The object with minimum 
    var obj; 
    // The latest minimum on arr[i][key] 
    var min = Number.MAX_VALUE; 

    // Iteration through all objects 
    for (var i = 0; i < arr.length; i++) { 
     if(arr[i][key] < min) { 
      obj = arr[i]; 
      min = arr[i][key]; 
     } // if end 
    } 

    return obj; 
} 

см больше, примера и запустить на: http://jsfiddle.net/mL8GA/

+0

Спасибо .. Точно, что мне нужно ..! – user2726374

1

Только петли и проверить:

var low = arrTest[0].minutes; 
    index; 

for (var i = 0; i < arrTest.length; i++) { 
    if (arrTest[i].minutes < low) { 
     low = arrTest[i].minutes; 
     index = i; 
    } 
} 

console.log("The lowest minutes are: " + low); 
console.log("Located at the object at index of: " + index); 
0

Если вы хотели бы использовать библиотеку, чтобы справиться с этой работой, вы можете проверить sortBy функции Underscore в.

http://underscorejs.org/#sortBy

Так, для примера, у вас есть:

var arrTest = [ 
    { 
     minutes : 78, 
     start : "address1", 
     end : "address2" 
    } 
    // ... 
]; 

и вы можете использовать функцию SortBy сортировать так:

var sortedArray = _.sortBy(arrTest, 'minutes'); 

и найти мин, вы можете выбрать первый:

return sortedArray[0]; 

Конечно, это полностью сортировка массива, а не просто поиск минимума или макс.