2012-05-31 5 views
3

Я вообще разместить код у меня есть до сих пор, но я ничего не имею на это ... :(Как отсортировать многомерный массив в JavaScript

Как бы я идти о повторной заказе следующий массив таким образом, чтобы Я ее на основе значения в ключе «процент», либо от низкого до высокого или высокого к низкому?

var data = [{ 
    "id": "q1", 
    "question": "blah blah blah", 
    "percentage": "32" 
}, { 
    "id": "q2", 
    "question": "blah blah blah", 
    "percentage": "23" 
}, { 
    "id": "q3", 
    "question": "blah blah blah", 
    "percentage": "11" 
}, { 
    "id": "q4", 
    "question": "blah blah blah", 
    "percentage": "3" 
}, { 
    "id": "q5", 
    "question": "blah blah blah", 
    "percentage": "6" 
}] 
+2

Это не многомерный массив. Это массив объектов. –

ответ

4

немного коррекции, это не многомерный массив, это массив объектов , вы, скорее всего, перепутали именование с PHP, для вашего вопроса используйте необязательный аргумент функции sort, чтобы определить свой собственный порядок сортировки.

data.sort(function(a, b) { 
    return a.percentage - b.percentage; 
}) 

// sorted data, no need to do data = data.sort(...); 

http://jsfiddle.net/cEfRd/

4

генератор сортировщик, обобщая https://stackoverflow.com/users/135448/siganteng ответ так, что он работает на любое имущество

function createSorter(propName) { 
    return function (a,b) { 
     // The following won't work for strings 
     // return a[propName] - b[propName]; 
     var aVal = a[propName], bVal = b[propName] ; 
     return aVal > bVal ? 1 : (aVal < bVal ? - 1 : 0); 

    }; 
} 
data.sort(createSorter('percentage')); 
Смежные вопросы