Jquery数组过滤 - grep()?

时间:2010-11-15 16:26:07

标签: jquery arrays sorting

如何使用jquery自己的函数将数组排序为如下所示?我假设grep()是我应该看的那个?

谢谢!

数组:

array (

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

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

);

编辑:这是一个澄清事物的PHP数组 - 我不完全确定如何编写正确的javascript(JSON?)数组?

2 个答案:

答案 0 :(得分:3)

首先,我假设您实际上在谈论的Javascript数组看起来像这样:

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

然后,您可以在此阵列上调用本机Javascript函数sort()。在这种情况下,您需要提供函数回调。这需要使用语法function (a, b)定义。 ab是数组中的元素。如果-1的排名应高于数组中的a,则需要返回b1如果排名较低,则0等级myArray.sort(function(a, b) { return b.weight - a.weight; });

如果您想按重量降序排序,可以执行以下操作:

{{1}}

答案 1 :(得分:1)

没有使用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;
});