【问题标题】:How can i sort this multidimensional array, that is sorted by id?我如何对这个按 id 排序的多维数组进行排序?
【发布时间】:2021-03-11 00:28:44
【问题描述】:

我想按 ID 对这个数组进行排序。 此代码不起作用:

    var arr = new Array();

    arr.push({
    id: "9",
    datum: "XXX",
    start: "XXX",
    ziel: "XXX",
    hinfahrt: "XXX",
    ruckfahrt: "XXX",
    zuzahlung: "XXX"
    });

    arr.push({
    id: "3",
    datum: "XXX",
    start: "XXX",
    ziel: "XXX",
    hinfahrt: "XXX",
    ruckfahrt: "XXX",
    zuzahlung: "XXX"
    });

    arr.push({
    id: "6",
    datum: "XXX",
    start: "XXX",
    ziel: "XXX",
    hinfahrt: "XXX",
    ruckfahrt: "XXX",
    zuzahlung: "XXX"
    });



    arr.sort(function(a,b) {
    if (a[0] === b[1]) {
        return 0;
    }
    else {
        return (a[0] < b[0]) ? -1 : 1;
    }
    });

    console.log(arr);

有人可以帮我整理一下吗?我尝试了函数排序,但没有任何改变。我想我不能瞄准正确的区域。 输出应该是这样的。

{id: '3', datum: 'XXX', start: 'XXX', ziel: 'XXX', hinfahrt: 'on', …} 
{id: '6', datum: 'XXX', start: 'XXX', ziel: 'XXX', hinfahrt: 'on', …} 
{id: '9', datum: 'XXX', start: 'XXX', ziel: 'XXX', hinfahrt: 'on', …}

【问题讨论】:

  • arr.sort((a,b)=>Number(a.id) - Number(b.id))

标签: javascript arrays sorting multidimensional-array


【解决方案1】:

这是一个对象数组。看起来您正在尝试按这些对象的属性对它们进行排序。您可以使用点符号访问该属性。尝试像这样重写你的排序:

arr.sort(function(a,b) {
    if (a.id === b.id) {
        return 0;
    } else {
        return (a.id < b.id) ? -1 : 1;
    }
    });

【讨论】:

    【解决方案2】:

    直接用它的增量获取属性。

    const
        array = [{ id: "9", datum: "XXX", start: "XXX", ziel: "XXX", hinfahrt: "XXX", ruckfahrt: "XXX", zuzahlung: "XXX" },{ id: "3", datum: "XXX", start: "XXX", ziel: "XXX", hinfahrt: "XXX", ruckfahrt: "XXX", zuzahlung: "XXX" },{ id: "6", datum: "XXX",  start: "XXX", ziel: "XXX", hinfahrt: "XXX", ruckfahrt: "XXX", zuzahlung: "XXX" }];
    
    array.sort((a, b) => a.id - b.id);
    
    console.log(array);
    .as-console-wrapper { max-height: 100% !important; top: 0; }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-11
      • 2013-12-09
      • 2011-03-17
      相关资源
      最近更新 更多