gpt4 book ai didi

javascript - 对对象数组进行排序

转载 作者:行者123 更新时间:2023-12-02 14:25:42 24 4
gpt4 key购买 nike

我有以下功能:

  function GeraHorario(inicio,fim,tempoConsulta)
{
var agenda = []
var data = new Date(2016, 0, 1, inicio, 0, 0, 0)
var horainicial = inicio
while (data.getDate() == 1) {
if(data.getHours() < fim)
{
var horario = data.toLocaleTimeString('pt-BR');
data.setMinutes(data.getMinutes()+tempoConsulta);
var d1 = horario.replace(/(.*)\D\d+/, '$1');
agenda.push(d1);
}else{break}
}
console.log(agenda)
return agenda
}

这个函数生成这个数组

["09:00", "09:10", "09:20", "09:30", "09:40", "09:50", "10:00", "10:10", "10:20", "10:30", "10:40", "10:50", "11:00", "11:10", "11:20", "11:30", "11:40", "11:50", "12:00", "12:10", "12:20", "12:30", "12:40", "12:50", "13:00", "13:10", "13:20", "13:30", "13:40", "13:50", "14:00", "14:10", "14:20", "14:30", "14:40", "14:50", "15:00", "15:10", "15:20", "15:30", "15:40", "15:50", "16:00", "16:10", "16:20", "16:30", "16:40", "16:50", "17:00", "17:10", "17:20", "17:30", "17:40", "17:50", "18:00", "18:10", "18:20", "18:30", "18:40", "18:50"]

我在数组中制作了一张 map ,它看起来像这样。 这是 map 中使用的函数

 function GroupHoras(array)
{
var result = array.reduce(function( map, hourStr ) {
var hour = hourStr.charAt(0) + hourStr.charAt(1);
if (!map.hasOwnProperty(hour)) map[hour] = [];
map[hour].push(hourStr);
return map;
}, {});

return result
}

map 后的样子

Object {10: Array[6], 11: Array[6], 12: Array[6], 13: Array[6], 14: Array[6], 15: Array[6], 16: Array[6], 17: Array[6], 18: Array[6], 09: Array[6]}

但是正如您所看到的,值 09 应该位于对象数组的开头、末尾。我如何越来越有序地排列这个主题?

最佳答案

您无法对 javascript 对象的属性进行“排序”。

也许一个好的解决方法是按照您想要显示的顺序存储包含属性名称的数组,并将其用于排序目的:

 var order = ["09","10","11"]
var obj = {"10":"ten","11":"Eleven", "09": "Nine"};
for(var i=0;i<order.length;i++){
var prop = order[i];
console.log(prop,obj[prop]);
}

关于javascript - 对对象数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38270782/

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