JavaScript 检查属性数组是否按升序排序

标签 javascript

您好,我需要一种更好的方法来检查属性数组是否按升序排序。 我用下面的 数组可以具有动态长度属性。

数组必须使用 DrawCD 属性进行排序 我想在不使用 for 循环的情况下以更好的方式做到这一点,如果可能的话,使用 Array 原型(prototype)函数

pevDrawInfo = [{
    "drawCD": 16281,
    "drawTime": "14:55:00",
    "winCol": 2,
    "oddEven": 0
  },
  {
    "drawCD": 16280,
    "drawTime": "14:50:00",
    "winCol": 2,
    "oddEven": 0
  },
  {
    "drawCD": 16279,
    "drawTime": "14:45:00",
    "winCol": 2,
    "oddEven": 0
  },
  {
    "drawCD": 16278,
    "drawTime": "14:40:00",
    "winCol": 2,
    "oddEven": 0
  }
];



for (i = 0; i < 2; i++) {
  if (pevDrawInfo[i].drawCD - pevDrawInfo[i + 1].drawCD > 0)
    sorted = false
  else
    sorted = true
}


console.log(sorted)

最佳答案

您可以使用 Array#every 查看并带走属性(property)进行检查。

var pevDrawInfo = [{ drawCD: 16281, drawTime: "14:55:00", winCol: 2, oddEven: 0 }, { drawCD: 16280, drawTime: "14:50:00", winCol: 2, oddEven: 0 }, { drawCD: 16279, drawTime: "14:45:00", winCol: 2, oddEven: 0 }, { drawCD: 16278, drawTime: "14:40:00", winCol: 2, oddEven: 0 }];

console.log(pevDrawInfo.every((b, i, { [i - 1]: a }) => !a || a.drawCD < b.drawCD));

pevDrawInfo.sort(({ drawCD: a }, { drawCD: b }) => a - b);

console.log(pevDrawInfo.every((b, i, { [i - 1]: a }) => !a || a.drawCD < b.drawCD));

关于JavaScript 检查属性数组是否按升序排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55727823/

相关文章:

javascript - AngularJS - 将 Controller 重构为服务 - 理解 self/this 和范围

javascript - 等待异步函数完成后再继续

javascript - 使用 angularjs 显示按类别排序的图像网格

javascript - Babel React 变换 : Property value expected type of string but got null

javascript - 如何通过ajax每X秒自动更新 Canvas 屏幕?

javascript - 先前尝试失败时,Firefox 未完成一系列调用

javascript - 目标容器不是DOM元素。(在react js中使用ant设计的轮播)

javascript - 装订铁页和和

javascript - js中如何调用外部jsp

javascript - 如何将 sdtout 从服务器返回到字符串内的客户端?