代码之家  ›  专栏  ›  技术社区  ›  Industrial

Jquery数组过滤-grep()?

  •  1
  • Industrial  · 技术社区  · 15 年前

    如何使用jquery自己的函数对数组进行如下所示的排序?我想grep()就是我应该看的那个?

    谢谢!

    阵列:

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

    编辑: 它是一个PHP数组,用于澄清一些问题-我不完全确定如何编写正确的javascript(JSON?)阵列?

    2 回复  |  直到 15 年前
        1
  •  3
  •   lonesomeday    15 年前

    首先,我假设您所说的Javascript数组如下:

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

    然后可以调用本机Javascript函数 sort() 在这个阵列上。在这种情况下,需要提供函数回调。这需要用语法来定义 function (a, b) . a 和 b 是数组中的元素。你得回去 -1 如果 一 应高于 乙 在阵列中, 1 如果排名较低 0 如果他们是平等的。

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

    myArray.sort(function(a, b) {
        return b.weight - a.weight;
    });
    
        2
  •  1
  •   aefxx    15 年前

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