sách gpt4 ai đã đi

AngularJS/javascript Thứ tự sắp xếp đặc biệt cho các đối tượng javascript

In lại 作者:行者123 更新时间:2023-12-03 05:48:03 31 4
mua khóa gpt4 Nike

我有例如像这样的数组:

var myArray = [];

var item1 = {
start: '08:00',
end: '09:30'
}
var item2 = {
start: '10:00',
end: '11:30'
}
var item3 = {
start: '12:00',
end: '14:30'
}
var item4 = {
start: '16:00',
end: '18:25'
}
var item5 = {
start: '19:00',
end: '21:25'
}

myArray.push(item1);
myArray.push(item2);
myArray.push(item3);
myArray.push(item4);

排序后的顺序应如下所示

[item1, item2, item5, item4, item3]

因此,开始时间在 12:00 之前的项目应按升序排列,而开始时间在 12:00 之后或等于 12:00 的项目应按相反顺序排列。

我使用 AngularJS 来迭代项目:


我需要上面的 ng-repeat 订单。是否有可能(以高性能的方式)做到这一点?

1 Câu trả lời

说实话,这很奇怪。但是,这应该可以做到:

function wiggleTime(time) {
var t = 60 * parseInt(time.substr(0, 2), 10) + parseInt(time.substr(3), 10);
return (t >= 720) ? 2160 - t : t;
}

function wiggleComparator(a, b) {
var aa = wiggleTime(a.start);
var bb = wiggleTime(b.start);
return aa - bb;
};
console.log(myArray.sort(wiggleComparator).map(function(o) { return o.start; }));
// ["08:00", "10:00", "19:00", "16:00", "12:00"]

为了提高性能,您可以预先摆动时间并将其存储到结构中,这样每个元素只需摆动一次,而不是每个测试对摆动两次。

关于javascript - AngularJS/javascript javascript 对象的特殊排序顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40254072/

31 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com