Сортировка массива с двумя требованиями

Работает ли strptime?

df2= structure(c("10:43 AM", "10:54 AM", "11:54 AM", "12:07 PM", "12:15 PM", 
            "12:54 PM", "1:54 PM", "2:54 PM"), .Dim = c(8L, 1L))



 strptime(df2, "%I:%M %p" )

Или, если вам не нужна дата, что-то вроде: Хотя это зависит от того, какой класс вам нужен для объекта.

substr(strptime(df2, "%I:%M %p" ),11,19)
0
задан Shidersz 17 January 2019 в 21:12
поделиться

1 ответ

Вы можете подойти, как на следующем примере.

Объяснение: unary plus используется для приведения логического числа к числам, если результат разности этих логических значений равен zero, то используйте сравнение по полю name с [114 ] localeCompare () .

const originalAttributes = [
    {name: "P", required: false},
    {name: "D", required: true},
    {name: "W", required: true},
    {name: "A", required: true},
    {name: "N", required: false},
    {name: "S", required: false},
    {name: "SI", required: false}
];

let res = originalAttributes.sort((a, b) =>
    (+b.required - +a.required) || a.name.localeCompare(b.name)
);

const listNames = a => a.map(
    i => `${i.name} ${i.required ? '--R' : ''}`
).join("\n");

console.log(listNames(res));

0
ответ дан Shidersz 17 January 2019 в 21:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: