使用Typescript按值排序对象数组

Nov*_*ovo 1 javascript typescript

如何按对象值输出这个对象数组?我正在使用Typescript

的console.log(this.items);

(6) [{…}, {…}, {…}, {…}, {…}, {…}]
{id: 3, ref: "P-201721", active: 1, visible: 1, weigth: 0.3, …}
{id: 4, ref: "P-201722", active: 1, visible: 1, weigth: 0.3, …}
{id: 1, ref: "P-201710", active: 1, visible: 1, weigth: 0.5, …}
{id: 2, ref: "P-201711", active: 1, visible: 1, weigth: 0.5, …}
{id: 5, ref: "P-201831", active: 1, visible: 1, weigth: 0.2, …}
{id: 6, ref: "P-201832", active: 1, visible: 1, weigth: 0.2, …}
Run Code Online (Sandbox Code Playgroud)

我试过这个,但数组保持相同的顺序 用数组排序数组中的数组

小智 9

对一组对象进行排序可能有点棘手.您必须传递自定义排序功能以定义比较对象的方式.怎么会.sort()知道你想按ID排序?也许你想按重量排序.

我在https://codepen.io/anon/pen/PEReGE?editors=0012上汇总了一个例子.如果您希望将id引用替换为任何属性,则可以将其替换为任何属性.

items.sort((a, b) => {
  if(a.id > b.id) {
    return 1;
  } else if(a.id < b.id) {
    return -1;
  } else {
    return 0;
  }
});
Run Code Online (Sandbox Code Playgroud)

如果您按数字属性排序,则可以使用此简写:

items.sort((a, b) => {
  return a.id - b.id;
});
Run Code Online (Sandbox Code Playgroud)