【问题标题】:sorting in javascript on condition or don't sort在 javascript 中按条件排序或不排序
【发布时间】:2021-03-21 18:25:47
【问题描述】:

我有一个对象数组,我只想在有剧集编号时对其进行排序,否则我不会对其进行排序或做任何我想要保持数据不变的事情。问题是使用此代码,当我有剧集编号时,排序效果很好。在另一种情况下,数据更改顺序意味着排序有效,我不希望这种情况发生。任何帮助将不胜感激

     const episodes = Array.prototype.slice.call(this.episodes).sort((a, b) => {
            if (a.Number && b.Number) {
                return a.Number - b.Number
            }
        });

我有 2 种情况 Number 存在,就像我想要排序的对象数组一样,它实际上按 Numbers 排序很好,这里没有问题:

    [
       {
        description: "Toda a atualidade."
        duration: 5400000
        Number: 321
        id: "PROGRAMID_14807272"
        },
        {
        description: "sobre as principais notícias do dia."
        duration: 5400000
        Number: 322
        id: "PROGRAMID_148057788"
        },
        {
        description: "notícias do dia."
        duration: 5400000
        Number: 320
        id: "PROGRAMID_148074755"
        }
    ]

或数字是空的,就像这种情况,我想保持它这样而不排序位它以某种方式排序,所以顺序正在改变,所以我正在寻找的结果是相同的东西,没有任何变化,但我得到了什么是混合顺序吗:

    [
       {
        description: "Toda a atualidade."
        duration: 5400000
        Number: null
        id: "PROGRAMID_14807272"
        },
        {
        description: "sobre as principais notícias do dia."
        duration: 5400000
        Number: null
        id: "PROGRAMID_148057788"
        },
        {
        description: "notícias do dia."
        duration: 5400000
        Number: null
        id: "PROGRAMID_148074755"
        }
    ]

【问题讨论】:

  • 你有一些例子和想要的结果吗?
  • 这行得通吗?如果出现数字0 怎么办?即使它是一个数字也会是虚假的
  • 我有两种情况,要么来自后端的数据,如 a.Number 和 b.Number 都是空值,要么都是整数。如果所有值都为空,我不想进行排序,否则我想对数据进行排序,所以我想忽略排序函数中的排序
  • 请添加一些数据。
  • 我添加了一个例子,请检查

标签: javascript arrays sorting object


【解决方案1】:

您可以按Number 属性排序。

array.sort((a, b) => a.Number - b.Number)

如果值为null,则null 将通过使用预期数字的位置转换为零。通过返回零进行排序,元素保持实际顺序。

console.log(null - null);

【讨论】:

    【解决方案2】:

    不太明白你的问题。 只需检查是否满足条件然后排序其他中断?

    `if (episodesIsNumber()){
      sortArray();
    }else{
      //doNothing
    }`
    

    【讨论】:

    • 查看我刚刚添加的示例
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-20
    • 2021-07-04
    • 2023-04-02
    • 2013-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多