通过索引按升序对 Applescript 列表进行排序

Tim*_*Joe 2 sorting applescript list

我正在尝试对从一个文件夹创建的文件名列表进行排序。这是代码,因为它是最简单的形式。如果我运行这个 10 总是在 1 之后而不是 9。我在看什么。

set composer_list to {"Filename_1", "Filename_2", "Filename_3", "Filename_4", "Filename_5", "Filename_6", "Filename_7", "Filename_8", "Filename_9", "Filename_10", "Filename_11"}
simple_sort(composer_list)


--======================================= Sorting Handler =====================================
on simple_sort(my_list)
    set the index_list to {}
    set the sorted_list to {}
    repeat (the number of items in my_list) times
        set the low_item to ""
        repeat with i from 1 to (number of items in my_list)
            if i is not in the index_list then
                set this_item to item i of my_list as text
                if the low_item is "" then
                    set the low_item to this_item
                    set the low_item_index to i
                else if this_item comes before the low_item then
                    set the low_item to this_item
                    set the low_item_index to i
                end if
            end if
        end repeat
        set the end of sorted_list to the low_item
        set the end of the index_list to the low_item_index
    end repeat
    return the sorted_list
end simple_sort
Run Code Online (Sandbox Code Playgroud)

结果:

{"Filename_1", "Filename_10", "Filename_11", "Filename_2", "Filename_3", "Filename_4", "Filename_5", "Filename_6", "Filename_7", "Filename_8", "Filename_9"}
Run Code Online (Sandbox Code Playgroud)

foo*_*foo 6

用:

considering numeric strings
    simple_sort(composer_list)
end considering
Run Code Online (Sandbox Code Playgroud)

结果:

{"Filename_1", "Filename_2", ..., "Filename_9", "Filename_10", "Filename_11"}
Run Code Online (Sandbox Code Playgroud)