1 (изменено: Turambar, 2020-11-16 01:31:36)

Тема: AHK: Сортировка по элементу вложенного массиву

Здравствуйте.
Имеется массив со вложенностью.


myarray["test"] := ["34", 10356]
myarray["test54"] := ["35", 10146]
myarray["test34"] := ["32", 10642]
myarray["test223"] := ["35", 10455]

Нужно переформатировать массив так, чтобы элементы располагались по нисходящей в зависимости от значения второго элемента вложенного массива:


myarray["test34"] (10642)
myarray["test223"] (10455)
myarray["test"] (10356)
myarray["test54"] (10146)

Как это проще всего сделать? Заранее благодарен за ответ.

2

Re: AHK: Сортировка по элементу вложенного массиву

Если у вас второй элемент в кавычках, надо думать, что он должен быть интерпретирован, как строка? Соответственно, если одно из значений, например, "2", то оно должно быть впереди всех в вашем примере?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

3

Re: AHK: Сортировка по элементу вложенного массиву

teadrinker пишет:

Если у вас второй элемент в кавычках, надо думать, что он должен быть интерпретирован, как строка? Соответственно, если одно из значений, например, "2", то оно должно быть впереди всех в вашем примере?

Нет, там числовое значение. Поправил в вопросе.

4

Re: AHK: Сортировка по элементу вложенного массиву

myarray := []
myarray["test"] := ["34", 10356]
myarray["test54"] := ["35", 10146]
myarray["test34"] := ["32", 10642]
myarray["test223"] := ["35", 10455]

newarray := []
for k, v in myarray
	newarray[-v[2]] := [k, v[1], v[2]]
for k, v in newarray
	MsgBox % v[1] "`n" v[2] "`n" v[3]
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v2004, AutoHotkey_L v1.1.33.02 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

5

Re: AHK: Сортировка по элементу вложенного массиву

А что означает эта строчка ?


newarray[-v[2]] := [k, v[1], v[2]]
GD

6

Re: AHK: Сортировка по элементу вложенного массиву

Новый массив, в котором элементы добавлены в нужном порядке.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v2004, AutoHotkey_L v1.1.33.02 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui