您好,我需要一种更好的方法来检查属性数组是否按升序排序。 我用下面的 数组可以具有动态长度属性。
数组必须使用 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/