【问题标题】:How to sort object by a number inside of it [duplicate]如何按对象内部的数字对对象进行排序[重复]
【发布时间】:2017-03-07 15:08:25
【问题描述】:

尝试根据对象内部的数字对包含一些数据的对象进行排序

例如:

变量对象 = { 排序:15, 名称:“价值 2” }, { 排序:10, 名称:“值 1” }

等等

所以我基本上想通过对象内部的“排序”值对这里的对象进行排序。有没有简单的方法可以做到这一点?

谢谢!

【问题讨论】:

  • 不是一个有效的 JS 代码
  • 它必须是一个数组
  • 请在提出新问题之前使用搜索。如何对对象数组进行排序已被多次询问。

标签: javascript sorting object numbers


【解决方案1】:

如果是数组,则使用Array#sort 方法使用自定义比较函数进行排序。

var object = [{
    sort: 15,
    name: "Value 2"
  },
  {
    sort: 10,
    name: "Value 1"
  }
];

object.sort(function(a, b) {
  return a.sort - b.sort
});

console.log(object);

【讨论】:

    【解决方案2】:

    考虑这个例子是一个有效的js:

    var myArray = [{
            sort: 15,
            name: "Value 2"
        },
        {
            sort: 10,
            name: "Value 1"
        }]
    myArray.sort(function(item, nextItem){
      return item.sort - nextItem.sort;
    });
    

    【讨论】:

      【解决方案3】:

      我假设您正在谈论一组对象。即:

      var object = [{sort: 15,name: "Value 2"},{sort: 10,name: "Value 1"}]
      

      在这种情况下,您可以使用Array.prototype.sort()

      var obj = [{
        sort: 15,
        name: "Value 2"
      }, {
        sort: 10,
        name: "Value 1"
      }]
      
      obj.sort(function(itemA, itemB){
        return itemA.sort - itemB.sort
      });
      
      console.log(obj)

      【讨论】:

        【解决方案4】:

        这可以将比较函数传递给数组排序函数。

        例如:

        var someData = [{id:2, name:"Jacob"}, 
                        {id:1, name:"Josh"}, 
                        {id:3, name:"Trevor"}];
        
        someData.sort(function(a,b) { return a.id - b.id});
        

        【讨论】:

        • 完美运行,谢谢!
        猜你喜欢
        • 2020-05-03
        • 2016-11-25
        • 2021-07-20
        • 1970-01-01
        • 1970-01-01
        • 2012-08-22
        • 1970-01-01
        • 2013-11-02
        相关资源
        最近更新 更多