2015-12-10 3 views
-2

Я создал массив.Массив объектов JSON. Сортировка по максимальному значению

образец:

[ 
    { 
    title: "RandomTitle", 
    distance: 600 
    }, 
    { 
    title: "RandomTitle", 
    distance: 480 
    }, 
    { 
    title: "RandomTitle", 
    distance: 500 
    } 
] 

Можно ли получить объекты в массиве сортируются на основе минимального значения расстояния до максимального значения?

Я делаю цикл for, где я показываю содержимое в div, и я хочу, чтобы он показывал ближайшие местоположения для пользователей.

облегченная версия моего кода: http://codepen.io/anon/pen/MKwqMv?editors=101

+0

возможный дубликат https://stackoverflow.com/questions/979256/sorting-an-array-of-javascript-objects –

+0

Существует несколько ответов SO, которые касаются этого, и документация Array.sort охватывает почти этот пример. –

+0

arrgh. это массив * объектов *, а не «объекты JSON» (что бы это ни было) – npup

ответ

2

Да, просто определить правильное sort функцию сравнения:

var obj = [{ 
 
    name: "RandomTitle", 
 
    distance: 600 
 
}, { 
 
    name: "RandomTitle", 
 
    distance: 480 
 
}, { 
 
    name: "RandomTitle", 
 
    distance: 500 
 
}]; 
 

 
obj.sort(function(a,b){return a.distance - b.distance}); // this is the key 
 

 
$(function() { 
 
    for (var i = 0; i < 3; i++) { 
 
    DOMresults = $("#unordered-list"); 
 
    name = obj[i].name; 
 
    distance = obj[i].distance; 
 
    console.log(obj) 
 

 
    resultsContent = '<li><p>Name: ' + name + '</p><p>Distance: ' + distance + '</p></li>'; 
 
DOMresults.append(resultsContent) 
 
    }; 
 

 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul id="unordered-list"> 
 

 
</ul>

+0

Это сработало отлично. Спасибо! Я буду принимать это как ответ, когда истечет время – Christian4423

+1

Без проблем, я рад, что смогу помочь. :) – Shomz

0

Да, используйте функцию sort. Предполагая, что ваш массив хранится в «обр» вар вы должны иметь что-то вроде

arr.sort(function(obj1, obj2) { 
    // obj1 and obj2 will be arr[0] and arr[1] at the first iteration, 
    // arr[1] and arr[2] on the second, etc 
    return ... // here you compare your objects, read the sort documentation provided in the link above. 
}); 
Смежные вопросы