【问题标题】:Customize Array sorting [duplicate]自定义数组排序[重复]
【发布时间】:2020-08-27 17:30:34
【问题描述】:

我遇到了数组排序问题。我正在尝试进行自定义排序。我的意思是说,如果我采用如下所示的数组,并且我想根据我的标准对其进行排序。例如,我希望我的新排序数组将以字母 'h' 开头的名称开始,然后正常运行。

let names = ['monkey', 'ziraf', 'cat', 'hridoy','htido', 'bhuyan'];

我想要这样的新排序数组:

names = ['hridoy', 'htido', 'bhuyan', 'cat', 'monkey', 'ziraf'];

有什么想法吗?

【问题讨论】:

    标签: javascript arrays sorting


    【解决方案1】:

    let names = ['monkey', 'ziraf', 'cat', 'hridoy','htido', 'bhuyan'];
    
    names.sort(function(x, y) {
      if(x.indexOf("h")===0 && y.indexOf("h")===0){
        x.slice(1);
        y.slice(1);
      } else{
        if (x.indexOf("h")===0) {
          return -1;
        } else if(y.indexOf("h")===0){
          return 1;
        }
      }
    
      if(x>y){
        return 1;
      } else if(y>x){
        return -1;
      } else{
        return 0;
      }
    });
    
    document.write(names);

    【讨论】:

    • 谢谢@acbay
    • 这不是答案吗?如果是,你能标记一下吗?
    【解决方案2】:

    好的。所以你想根据它是否包含字母'h'对你的数组进行排序。 您必须首先声明一个新的空数组,然后 for 循环第一个数组。如果元素以 h 作为字符串中的第一个字母,则将其添加到新的空数组并从第一个数组中删除。然后,再次 for 循环遍历新的第一个数组并将所有元素添加到新数组中。将第一个数组 = 设置为新数组。

    【讨论】:

    • 我不太清楚,请您详细说明或举个例子。
    猜你喜欢
    • 1970-01-01
    • 2019-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-02
    • 1970-01-01
    • 2020-07-07
    • 2020-08-30
    相关资源
    最近更新 更多