gpt4 book ai didi

javascript - 具有多个条件的自定义 array.sort 函数,包括。 bool 值

转载 作者:行者123 更新时间:2023-11-30 11:42:13 27 4
gpt4 key购买 nike

我有一个对象数组,我想按几个属性对其进行排序。

我要展示数组的单个元素

var ele = {
id: INT, various,
priority: INT 1 - 10,
shooterid: INT various,
targetid: INT various,
flight: BOOL
}

我想根据一些标准对数组进行排序,我可以通过使用按优先级、射手和目标进行排序

if (a.priority != b-priority){
return a-priority - b-priority;
else if a.shooterid != b.shooterid){
return a.shooterid - b. shooterid
}
else return a.targetid - b.targetid

但是,我也想按航类排序,我希望所有具有 flight = true 的元素在上述排序的补充中排在最后。

我尝试了 if (a.flight){return -1/0/1} a 上面 if/self 的最顶部(将 else 添加到以前的 if)但它没有用。 ..

我如何扩展排序以包含 BOOL 属性?

最佳答案

您可以将所有排序条件与逻辑或 || 组合,甚至是 bool 值。

var data = [{ id: 0, flight: true, priority: 1, shooterid: 2, targetid: 1 }, { id: 1, flight: true, priority: 2, shooterid: 2, targetid: 3 }, { id: 2, flight: false, priority: 1, shooterid: 1, targetid: 2 }, { id: 3, flight: false, priority: 2, shooterid: 1, targetid: 1 }, { id: 4, flight: true, priority: 1, shooterid: 1, targetid: 2 }];

data.sort(function (a, b) {
return (
a.flight - b.flight ||
a.priority - b.priority ||
a.shooterid - b.shooterid ||
a.targetid - b.targetid
);
});

console.log(data);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 具有多个条件的自定义 array.sort 函数,包括。 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42206834/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com