Фильтрация массива Jquery - grep ()? - PullRequest
1 голос
/ 15 ноября 2010

Как мне отсортировать массив, как показано ниже, с собственными функциями jquery?Я предполагаю, что grep () - это то, на что я должен смотреть?

Спасибо!

Массив:

array (

    array(
        'id' => 0,
        'name' => 'myName',
        'weight' => 100  
    );

    array(
        'id' => 1,
        'name' => 'myName2',
        'weight' => 150,
    );

);

Редактировать: Это массив PHP, чтобы прояснить ситуацию - я не совсем уверен, как написать правильный массив javascript (JSON?)?

Ответы [ 2 ]

3 голосов
/ 15 ноября 2010

Во-первых, я предполагаю, что вы на самом деле говорите о массиве Javascript, который выглядит примерно так:

var myArray = [
    {
        id: 0,
        name: 'myName',
        weight: 100
    },
    {
        id: 1,
        name: 'myName2',
        weight: 150
    }
]

Затем вы можете вызвать встроенную функцию Javascript sort() для этого массива,В этом случае вам нужно будет предоставить функцию обратного вызова.Это должно быть определено с помощью синтаксиса function (a, b).a и b - это элементы в вашем массиве.Вам необходимо вернуть -1, если a должен иметь более высокий рейтинг, чем b в массиве, 1, если он должен иметь более низкий рейтинг, и 0, если они равны.

Если хотитечтобы отсортировать их в порядке убывания веса, вы можете сделать следующее:

myArray.sort(function(a, b) {
    return b.weight - a.weight;
});
1 голос
/ 15 ноября 2010

Нет такого метода, как сортировка массива с помощью jQuery.Почему бы вам просто не использовать Array.prototype.sort вместо этого?Это нативный код, и вы можете передать ему функцию для сравнения любых значений вложенных массивов.

var myarr = [
    {id: 3, foo: 'bax'},
    {id: 1, foo: 'baz'},
    {id: 2, foo: 'bay'}
];

// Sort by id
myarr = myarr.sort(function(x, y) {
    return x.id >= y.id;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...