根据以字符串值形式给出的数字键对对象数组进行排序

时间:2018-07-03 12:41:00

标签: javascript jquery

我有一个包含键值对的数组,数组列是id和name。我想按ID对这个数组进行排序。

id列的值是字符串类型,但我想将它们排序为数字值,也应该在IE上工作

这是我的代码:

var items = [{
    "id": "165",
    "name": "a"
  },
  {
    "id": "236",
    "name": "c"
  },
  {
    "id": "376",
    "name": "b"
  },
  {
    "id": "253",
    "name": "f"
  },
  {
    "id": "235",
    "name": "e"
  },
  {
    "id": "24",
    "name": "d"
  },
  {
    "id": "26",
    "name": "d"
  }
];

console.log(items.sort((a, b) => Number(a.ID) - Number(b.ID)))

尽管顺序确实发生了变化,但也没有像预期的那样在IE中发生变化。

1 个答案:

答案 0 :(得分:2)

现在,您可以使用sort方法使用纯JS来完成此操作。

var items = [
  {
    "id": "165",
    "name": "a"
  },
  {
    "id": "236",
    "name": "c"
  },
  {
    "id": "376",
    "name": "b"
  },
  {
    "id": "253",
    "name": "f"
  },
  {
    "id": "235",
    "name": "e"
  },
  {
    "id": "24",
    "name": "d"
  },
  {
    "id": "26",
    "name": "d"
  }
];

items.sort((a,b)=>+a.id>+b.id);
console.log(items);